Rails - f.select和奇怪的语法错误

时间:2012-07-06 15:46:52

标签: ruby-on-rails ruby syntax

我使用以下f.select查询:

= f.select(:category_id, @categories, :html_options => {:class => 'select_box'}, {:disabled => lambda{ |category| category.id == 18 }})

这一行给我一个语法错误......为什么?所有牙套都应关闭......

2 个答案:

答案 0 :(得分:2)

= f.select(:category_id, @categories, :html_options => {:class => 'select_box'}, {:disabled => lambda{ |category| category.id == 18 }})

应该是

= f.select(:category_id, @categories, :html_options => {:class => 'select_box', :disabled => lambda{ |category| category.id == 18 }})

您在自己的哈希

中有禁用选项

答案 1 :(得分:1)

根据api,该方法定义为

f.select(method, choices, options = {}, html_options = {})

其中:disabled是一个选项而:class是一个html_option,因此调用应该写成

f.select(:category_id, @categories, {:disabled => lambda{ |category| category.id == 18 }}, { :class => 'select_box' }).

不过,最后一组括号不应该是必要的。