【问题标题】:Rails 3, checked radio button with if functionRails 3,带有if函数的选中单选按钮
【发布时间】:2014-04-15 21:11:04
【问题描述】:

我的表单中有一个单选按钮,如下所示

    <div class="btn-group" data-toggle="buttons-radio">
      <%= f.radio_button :start_year, :class=> "btn", :value=> '2007' %> 2007
      <%= f.radio_button :start_year, :class=> "btn", :value=> '2008' %> 2008
      <%= f.radio_button :start_year, :class=> "btn", :value=> '2009' %> 2009
    </div>

我正在使用 twitter 引导程序

我想做如下的事情:

    <div class="btn-group" data-toggle="buttons-radio">
      <%= f.radio_button :start_year, :class=> "btn", :value=> '2007', if @dates.start_year == 2007 :checked => true end %> 2007
      <%= f.radio_button :start_year, :class=> "btn", :value=> '2008', if @dates.start_year == 2008 :checked => true end %> 2008
      <%= f.radio_button :start_year, :class=> "btn", :value=> '2009', if @dates.start_year == 2009 :checked => true end %> 2009
    </div>

但我收到以下错误:

syntax error, unexpected keyword_ensure, expecting ')'
syntax error, unexpected keyword_end, expecting ')'

我一定是在单选按钮中的 if 语句中犯了一个错误,但我不确定如何准确地纠正这个问题

【问题讨论】:

    标签: ruby-on-rails-3 radio-button


    【解决方案1】:

    试试

    <%= f.radio_button :start_year, :class=> "btn", :value=> '2007', :checked => Proc.new { @dates.start_year == 2007 ? true : false } %> 2007
    

    【讨论】:

      【解决方案2】:

      我知道这是一个老问题,但也许它对其他人有帮助。 我认为我们在这里不需要Proc,我们可以将布尔值传递给:checked 键。 另外,@dates.start_year == 2007 ? true : false 可以简化为@dates.start_year == 2007

      所以,结果会很简单

      <%= f.radio_button :start_year, :value=> '2007', :checked => @dates.start_year == 2007%> 2007
      

      【讨论】:

      • 注意 - 如果您使用标签(而不是 f.),它们使用不同的语法(因此您还有另一个“神奇”模式可以尝试记忆)。因此,对于单选按钮标签,请去掉 ":checked => " 并将布尔测试作为第三个参数 - 所以: ... radio_button_tag :start_year, :value=> '2007', (@dates.start_year = = 2007)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2017-03-20
      相关资源
      最近更新 更多