如何以简单形式隐藏关联字段的一个选项?

时间:2016-02-05 07:45:45

标签: ruby-on-rails

我有:

price_plan.rb - 此型号具有布尔属性:隐藏

has_many :users

user.rb

belongs_to :price_plan
用户编辑表单中的

<%= f.association :price_plan, as: :radio_buttons, required: true, label: 'Select plan', hidden: ?????????? %>

我该怎么做?我试过这种方式:hidden: lambda{ |price_plan| price_plan.hidden }它没有用。

3 个答案:

答案 0 :(得分:1)

很抱歉,如果我不清楚我的问题。这就是我需要的:

<强> price_plan.rb

scope :public_plan,-> { where(hidden: false) }

形式:

<%= f.association :price_plan, :collection => PricePlan.public_plan, as: :radio_buttons, required: true %>

答案 1 :(得分:0)

请尝试以下代码。

<%= f.association :price_plan, as: :radio_buttons, required: true, label: 'Select plan', disabled: lambda{ |price_plan| price_plan.hidden? } %>

要隐藏,您可以尝试以下代码。希望它有效。

<% display_none = 'display:none' %>
<% display_block = 'display:block' %>
<%= f.association :price_plan, as: :radio_buttons, required: true, label: 'Select plan', style: "#{ lambda{ |price_plan| price_plan.hidden? } ? display_none : display_block }" %>

答案 2 :(得分:0)

仍然不确定我是否理解确切的目标,但这更接近你正在寻找的目标吗?

<% if f.price_plan %>
   <%= f.association :price_plan, as: :radio_buttons, required: true, label: 'Select plan' %>
<% else %>
   <% f.hidden_field :price_plan %>
<% end %>