嗨,如果有人可以plz给出我得到的以下错误的解决方案。
我有两个模型PackageDeals和PackageDetails
在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
任何解决方案请................
答案 0 :(得分:1)
检查模型和关联名称的拼写:
默认情况下,Rails在模型名称中使用单数形式, has_one 和 belongs_to 关联名称(例如PackageDeal
和{{1 has_many 关联名称中的复数(例如belongs_to :package_deal
)。更多信息:http://itsignals.cascadia.com.au/?p=7
你可以打破命名约定,但是你需要关联的额外参数。所以除非你有充分的理由不这样做,否则建议坚持默认值。有关这些额外参数的更多信息:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to