Rails 3,带有IF功能的单个单选按钮



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

    <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 Bootstrap

我想做以下操作:

    <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语句中犯错,但是我不确定如何准确纠正此

尝试

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

我知道这是一个古老的问题,但也许对他人有所帮助。我认为我们在这里不需要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

最新更新