条件检查里面有rails text_field标签

时间:2014-07-11 09:00:48

标签: ruby-on-rails ruby

我在rails视图页面中有一个文本字段标记。现在它写得像这样..

<% if params[:action]== "edit" %>
  <%= f.text_field :id, class: 'form-control', disabled: true %>
<% else %>
  <%= f.text_field :id, class: 'form-control', disabled: false %>
<% end %>

我可以用一行来写这个......比如

<%= f.text_field :id, class: 'form-control', disabled: (if params[:action]=="edit")?true:false %>

我知道这不对。请纠正我。

2 个答案:

答案 0 :(得分:5)

试试这个:

<%= f.text_field :id, class: 'form-control', disabled: (params[:action] == 'edit') %>

params[:action] == 'edit'已经返回truefalse

答案 1 :(得分:2)

你关闭了。试试这个:

<%= f.text_field :id, class: 'form-control', disabled: (params[:action] == "edit" ? true : false) %>

括号/括号需要包含整个条件语句。这样就会评估语句,只返回truefalse

backpackernh的解决方案更好 - 它一起摆脱了三元声明:

<%= f.text_field :id, class: 'form-control', disabled: (params[:action] == "edit") %>