Rails - 条件形式元素?

时间:2010-10-21 18:20:11

标签: ruby-on-rails

我在表格中有以下内容:

<%= f.hidden_​​field(:project_id,:value => @ project.id)%>

此表单部分有时包含@project。有时却没有。这是应用程序的本质。

但我想使用一个部分,因为它是一个很大的形式。这里的问题是它是否包含@project,页面错误....

如何执行以下操作:

  • 如果定义了@project,则仅渲染隐藏字段
  • 如果未定义@project,请为该字段指定值=“”

谢谢!

2 个答案:

答案 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 : '') %>
相关问题