繁体   English   中英

Ruby on Rails:表单错误

[英]Ruby on Rails: Form Error

我有一个接受用户信息并将其存储在数据库中的表格。 对于某些字段,用户可以在字段中放入新信息,或从数据库中选择以前的信息。 它之前工作正常,但是最近我清理了数据库,现在尝试访问该页面时出现此错误。

未定义的方法“空”? 对于nil:NilClass

提取的源(第27行附近):

27:<%= f.select(:client,Project.all.map {| p | [p.client]}。uniq !,:prompt =>“选择以前的客户端”)%>

表单视图示例:

<div class="field">
<%= label_tag :new_client, "Client" %><br/>
<%= text_field_tag :new_client %>
Or
<%= f.select( :client, Project.all.map {|p| [p.client]}.uniq!, :prompt => "Select a previous Client") %>
</div>

项目负责人:

def create
@project = Project.new(params[:project])


@project.client = params[:new_client] unless params[:new_client].empty?
@project.exception_pm = params[:new_exception_pm] unless params[:new_exception_pm].empty?
@project.project_owner = params[:new_project_owner] unless params[:new_project_owner].empty?
@project.role = params[:new_role] unless params[:new_role].empty?
@project.industry = params[:new_industry] unless params[:new_industry].empty?
@project.business_div = params[:new_business_div] unless params[:new_business_div].empty?

respond_to do |format|
  if @project.save
    format.html { redirect_to @project, notice: 'Project was successfully created.' }
    format.json { render json: @project, status: :created, location: @project }
  else
    format.html { render action: "new" }
    format.json { render json: @project.errors, status: :unprocessable_entity }
  end
end
end

更新:

我认为错误来自.uniq! 我的表单视图中的方法。 还有其他想法吗?

谢谢

您应该使用blank? 方法而不是empty?

您没有任何要映射到下拉菜单中的项目。

添加一个项目,您应该可以。

我从使用uniq!改变了uniq! uniq

那似乎解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM