1

モデルに仮想属性を作成しています:

def entities
  @entities = Array.new()
  @entities.push(self.contact.name)
  @entities.push(self.contact.partner.name) if self.contact.partner
  @entities.push('Joint') if self.contact.partner
  @entities
end

次に、私のフォームでは、ネストされた配列からこの配列を使用しようとしています。私はシンプルなフォームを使用しているので、このようになります

<%= f.input :ownership, collection: :entities, :include_blank => false, :label => false %>

ただし、これによりエラーが発生します。

undefined method `to_a' for :entities:Symbol

配列を作成した場合、配列としてレンダリングされない理由がわかりません。私は何が欠けていますか?

4

1 に答える 1

2

:entitiesコレクションとして使用することはできません:

<%= f.input :ownership, collection: :entities ...%>

それはうまくいきません。:entitiesこのエラーは、Simple Form が引数を配列に変換しようとしているため、エラーが発生していることを示しています。

実際のコレクションを与える必要があります。

<%= f.input :ownership, collection: @object.entities ... %>
于 2012-10-07T01:14:01.947 に答える