2

次のように、1つの属性を複数の事前定義された値にのみ設定できるモデルがある場合:

class Painting < ActiveRecord::Base
  SALE_STATUS = ["for sale", "sold"]
  validates_inclusion_of :status, :in => SALE_STATUS
end

statusの入力フィールドに、使用可能な各オプションのラジオボタンやチェックボックスなどのみが表示されるようにERb / HTMLフォームを作成する方法はありますか?

<%= form_for @painting do |painting| %>
  <%= painting.check_box :status # ... don't know how to implement!
<% end %>

御時間ありがとうございます。

4

1 に答える 1

2

次のようなことができると思います:

<%= form_for @painting do |painting| %>
  <% Painting::SALE_STATUS.each do |sale_status| %>
    <%= painting.check_box :status, sale_status %>
  <% end %>
<% end %>

ただし、このコードでは、ユーザーは販売ステータスを選択できません。ステータスに null 値を許可する場合は、これをモデルに追加します。

validates_inclusion_of :status, :in => SALE_STATUS, :allow_nil => true

そうでない場合は、代わりにラジオ ボタンを使用します。

<%= form_for @painting do |painting| %>
  <% Painting::SALE_STATUS.each do |sale_status| %>
    <%= painting.radio_button :status, sale_status %>
  <% end %>
<% end %>
于 2013-01-15T19:12:24.773 に答える