0

我在 rails 4. 主题和类别中有一个简单的 1:n 关系。主题确实有一个类别,类别有许多主题。

主题.rb

class Topic < ActiveRecord::Base

  belongs_to :category

end

类别.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

我做错了什么?

4

2 回答 2

0

问题是friendly_id gem。我不得不使用

gem 'friendly_id', '~> 5.0.0'

使用rails 4。

现在它完美地工作了。感谢https://github.com/norman/friendly_id#what-c ​​hanged-in-version-50

于 2013-10-21T10:42:41.143 回答
0

我认为您的错误的根源实际上是您@topic在获取类别 slug 时正在引用,但是将变量传递topic到您的块中,因此@topic为 nil。

于 2013-10-21T02:15:37.967 回答