我在rails 4中有一个简单的1:n关系。主题和类别。主题确实有一个类别,类别有很多主题。
topic.rb
class Topic < ActiveRecord::Base
belongs_to :category
end
category.rb
class Category < ActiveRecord::Base
has_many :topics
end
我使用标准外键模式,因此我的主题模型具有属性
category_id
现在做一些标准的东西我有以下问题:
当我列出属于某个类别的所有主题时,这样可以正常工作:
<% @category.topics.each do |topic| %>
...
<% end %>
但这样做(只是显示属于该主题的类别的类别slug):
<%= @topic.category.slug %>
绘制此错误:
undefined method `synchronize' for nil:NilClass
我做错了什么?
答案 0 :(得分:0)
我认为您的错误来源实际上是您在获取类别slug时引用@topic
,但是将变量topic
传递到您的块中,因此@topic
为零
答案 1 :(得分:0)
问题是friendly_id gem。 我不得不使用
gem 'friendly_id', '~> 5.0.0'
使用rails 4。
现在它完美无缺。 感谢https://github.com/norman/friendly_id#what-changed-in-version-50