0

私は単純なフォームを使用していますが、2 つの関連付けの値をどのように表示するかはわかりません。

価格はサービスまたは製品に属することができますが、同時に両方に属することはできません。

Price
 # service_id, product_id
 belongs_to :services # service.name
 belongs_to :products # product.name
end

代わりに、私の単純なフォームを次のようにします。

<%= f.association :product, :input_html => { :class => "span5 } %>
<%= f.association :service, :input_html => { :class => "span5 } %>

代わりに1つのフィールドに変えたいです。

方法は何simple_form_forですか?

レギュラーはform_forどうですか?

4

1 に答える 1

1

より良い方法は、ポリモーフィックアソシエーションを使用することだと思います。

class Price
    belongs_to :pricable, polymorphic: true
end

class Product
    has_one :price, as: :priceable
end

class Service
    has_one :price, as: :priceable
end

次に、フォームで次を使用できます。

<%= form_for [@priceable, Price.new]

@priceable は製品またはサービスです。

于 2012-07-01T16:09:51.727 に答える