AnA*_*ice 16 ruby-on-rails ruby-on-rails-3
我有以下内容:
<%= f.collection_select :role_id, roles, :id, :name, :prompt => true, :selected => 2 %>
Run Code Online (Sandbox Code Playgroud)
问题是,如果值@ permission.role_id为nil,我只希望选择的值为2.
所以我试过了:
<%= f.collection_select :role_id, roles, :id, :name, :prompt => true, {:selected => 2 if @permission.role_id.nil?} %>
Run Code Online (Sandbox Code Playgroud)
但这让Rails很生气.如何根据单独的变量是否为零来创建条件选择值?
谢谢
eco*_*gic 27
好吧,我想我会在2分钟内感到愚蠢,但是怎么样呢
<%= f.collection_select :role_id, roles, :id, :name, prompt: true, @permission.role_id ? {} : {selected: 2 } %>
Run Code Online (Sandbox Code Playgroud)
你的解决方案不起作用的原因是你if可以返回nil,因此看起来像这样:
<%= f.collection_select :role_id, roles, :id, :name, :prompt => true, {nil} %>
Run Code Online (Sandbox Code Playgroud)
{nil}语法错误在哪里
san*_*ark 11
虽然三元运算符的公认解决方案有效,但我认为它不像以下解决方案那么可读:
<%= f.collection_select :role_id, roles, :id, :name, :prompt => true, :selected => @permission.role_id || 2 %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24865 次 |
| 最近记录: |