我在表格中有以下内容:
<%= f.hidden_field(:project_id,:value => @ project.id)%>
此表单部分有时包含@project。有时却没有。这是应用程序的本质。
但我想使用一个部分,因为它是一个很大的形式。这里的问题是它是否包含@project,页面错误....
如何执行以下操作:
谢谢!
答案 0 :(得分:3)
你似乎在问几件不同的事情。如果要有条件地渲染字段,意味着如果未定义@project,则根本不显示该字段,请执行以下操作:
<%= f.hidden_field(:project_id, :value => @project.id) if @project %>
如果您希望在没有项目时该值为空,您可以稍微调整前一个答案的条件:
<%= f.hidden_field (:project_id, :value => @project ? @project.id : '') %>
没有必要检查@project
是否已定义而不是nil,因为它是一个全局变量并且直接调用它不会触发“无方法”错误。
答案 1 :(得分:0)
<%= f.hidden_field (:project_id, :value => defined?(@project) && @project ? @project.id : '') %>