0

我有一个应用程序可以在类别和子类别(我称之为选择)下创建微博。用户可以在两个字段中写入,类别字段和选择字段。我的模型是:

class Micropost < ActiveRecord::Base
  attr_accessible :category_content, :selection_content, :category_id, :selection_id, :user_id

  belongs_to :user
  belongs_to :category
  belongs_to :selection

  validates :user_id, presence: true
  validates :category_content, presence: true
  validates :selection_content, presence: true


  default_scope order: 'microposts.created_at DESC'

end


class Category < ActiveRecord::Base
  attr_accessible :content, :id, :count, :c_count
  has_many :selections
  has_many :comments

  default_scope order: 'categories.count DESC'

end


class Selection < ActiveRecord::Base
  attr_accessible :content, :count, :category_id
  belongs_to :category

  default_scope order: 'selections.count DESC'

end

在我的控制台中,当我创建用户 u 并输入“u.microposts”时,我会得到所需的响应(由 u 创建的微帖子列表)。当我创建一个类别 c 并输入“c.selections”时,我也得到了所需的响应(属于 c 的选择列表)。但是当我输入“s.microposts”时,我收到以下错误消息-“未定义的方法microposts' for #<Selection:0x57c6b40>". Similarly, when I enter "u.microposts" I get the error message- "undefined methodmicroposts' for #”。任何想法为什么会发生这种情况?

我正在使用 RubyMine 在 Windows 上进行开发。我肯定很快就会迁移到 OS X,因为我必须在 Windows 环境中做太多的工作,但我不明白为什么这会在这里有所作为。

4

1 回答 1

0

“s.microposts”

这将has_many在 's' 类(一个Selection对象)中查找一个已命名microposts但您尚未定义的关系。

将以下内容添加到Selection类中:

has_many :microposts
于 2013-08-07T23:02:09.207 回答