rails check_box_tag 消失
rails check_box_tag disapear
我想制作一个基于 check_boxes 的表单,如果“@clans”数组不为 nil 并且它包含给定复选框的 'value',我希望对其进行检查。
我的第一个 atemnpt 是:
<%= check_box_tag 'clans[]','Feniks', true if !@clans.nil? and @clans.include? 'Feniks' %>
但是当@clans 为 nil 时,check_box 消失,就像它被禁用一样。
我设法用这样的代码解决了这个问题:
<% if !@clans.nil? and @clans.include? 'Feniks' %>
Feniks: <%= check_box_tag 'clans[]','Feniks', true %>
<% else %>
Feniks: <%= check_box_tag 'clans[]','Feniks' %>
<% end %>
但它看起来很糟糕,所以必须有更好的方法来编写它:)
请告诉我如何处理这个:)
将 if
逻辑括在括号内。
<%= check_box_tag 'clans[]','Feniks', (true if !@clans.nil? and @clans.include? 'Feniks') %>
在您的代码中,if
用作修饰符。喜欢print 10 if x.present?
。在此示例中,如果 x
不是 blank,则会调用此方法 print(10)
,否则不会。同样的类比也适用于您的情况。在 erb 标签内,您的代码被解释为:
<%= check_box_tag('clans[]','Feniks', true) if <condition> %>
这就是为什么当 condition 为真时,check_box_tag
方法被调用,否则不会被调用。您可以将整个 if
部分写为:
<%= check_box_tag 'clans[]','Feniks', @clans.try(:include?, 'Feniks') %>
我想制作一个基于 check_boxes 的表单,如果“@clans”数组不为 nil 并且它包含给定复选框的 'value',我希望对其进行检查。
我的第一个 atemnpt 是:
<%= check_box_tag 'clans[]','Feniks', true if !@clans.nil? and @clans.include? 'Feniks' %>
但是当@clans 为 nil 时,check_box 消失,就像它被禁用一样。
我设法用这样的代码解决了这个问题:
<% if !@clans.nil? and @clans.include? 'Feniks' %>
Feniks: <%= check_box_tag 'clans[]','Feniks', true %>
<% else %>
Feniks: <%= check_box_tag 'clans[]','Feniks' %>
<% end %>
但它看起来很糟糕,所以必须有更好的方法来编写它:)
请告诉我如何处理这个:)
将 if
逻辑括在括号内。
<%= check_box_tag 'clans[]','Feniks', (true if !@clans.nil? and @clans.include? 'Feniks') %>
在您的代码中,if
用作修饰符。喜欢print 10 if x.present?
。在此示例中,如果 x
不是 blank,则会调用此方法 print(10)
,否则不会。同样的类比也适用于您的情况。在 erb 标签内,您的代码被解释为:
<%= check_box_tag('clans[]','Feniks', true) if <condition> %>
这就是为什么当 condition 为真时,check_box_tag
方法被调用,否则不会被调用。您可以将整个 if
部分写为:
<%= check_box_tag 'clans[]','Feniks', @clans.try(:include?, 'Feniks') %>