我在使用 Rails 3.2.1 时遇到问题,嵌套资源一直在抱怨未初始化的常量,我不知道为什么,因为对我来说,似乎我已经完成了与使用不同模型相同的工作。在某些时候,我想我可能在某处使用了保留字,但更改型号名称并没有帮助......
错误:
uninitialized constant Brand::Series
Extracted source (around line #11):
8: </article>
9:
10:
11: <% @series.each do |serie| %>
12: <article class='serie_block'>
13: <%= serie.name %>
14: </article>
品牌.rb
class Brand < ActiveRecord::Base
has_many :series, :order => "name, id ASC", :dependent => :destroy
end
serie.rb
class Serie < ActiveRecord::Base
belongs_to :brand
end
Brands_controller.rb
def show
@brand = Brand.find(params[:id])
@series = @brand.series
end
品牌/show.html.erb
<% @series.each do |serie| %>
<article class='serie_block'>
<%= serie.name %>
</article>
<% end %>
当我尝试创建一个新系列时,我得到相同的“未初始化常量 Brand::Series”错误,但它指的是“app/controllers/series_controller.rb:21:in `new'”,即这一行“@意甲=@brand.series.build”。
series_controller.rb
# GET /Series/new
# GET /Series/new.json
def new
@brand = Brand.find(params[:brand_id])
@serie = @brand.series.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @serie }
end
end
现在奇怪的是这种关系似乎起作用了,Rails 并没有抱怨“品牌”没有“系列”方法。但是系列对象的实际创建似乎失败了:s