0

こんにちは、私が得ている次のエラーの解決策を教えてください。

PackageDeals と PackageDetails の 2 つのモデルがあります。

PackageDeals モデルには、次のコードがあります:- has_many :package_details has_many :image_sets accepts_nested_attributes_for :package_details

そして、 PackageDetails モデルには次のものがあります。

    belongs_to :package_deals
accepts_nested_attributes_for :package_deals

コントローラーで:

def new 
        @packages=PackageDeals.new(params[:package_deals])
                    @packages.package_details.build

終わり

今私が使用しているビューで:

      <td><%= r.text_field :name, :class => 'space_bottom quote_request_form',:size=>17 %></td></tr>
        <tr><td><%= r.fields_for :package_details do |f| %></td></tr>

        some codes

        <%end%>
  <tr>
    <td><%= r.submit 'Create', :class => 'space_top' %></td></tr></table>
  <% end %>

ビューで新しいリンクをクリックすると、このエラーが発生します。

初期化されていない定数 PackageDeals::PackageDetail

任意の解決策をお願いします.......

4

1 に答える 1

1

モデル名と関連付け名のスペルを確認します。

Rails はデフォルトで、モデル名で単数形を使用し、 has_oneおよびbelongs_to関連名 (例: PackageDealand belongs_to :package_deal) と複数形has_many関連名 (例: )を使用しhas_many :package_detailsます。詳細: http://itsignals.cascadia.com.au/?p=7

命名規則を破ることはできますが、関連付けに追加のパラメーターが必要になります。したがって、特に理由がない限り、デフォルトのままにしておくことをお勧めします。これらの追加パラメーターの詳細: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

于 2012-06-07T12:54:00.197 に答える