在选择

时间:2017-09-13 13:48:11

标签: ruby-on-rails actionview

我必须显示可评级的国家/地区列表。如果某个国家/地区已被评级,则用户无法“统一”它

# countries index
= render @countries

# countries/_country
= form_for country do |f|
  =  f.select :rating,
    Rating.options,
    include_blank: "False if country is rated. True otherwise"

我尝试将proc传递给include_blank选项,但它不起作用

我可以使用帮助器来计算看起来像这样的选项:

def rating_options(country)
   if country.rating.present?
     Rating.options
   else
     [""] + Rating.options
   end
end

是否有更好的方法在条件的select标签中包含空白选项?

1 个答案:

答案 0 :(得分:1)

您可以向include_blank选项传递任何辅助方法或条件

= form_for country do |f|
  = f.select :rating,
    Rating.options,
    include_blank: f.object.rating.empty?