0

我有下表,我试图在其中存储用户之间的消息。我已经尽我所能建立了关系,但我得到了一个NameError in Messages#indexuninitialized constant Member::messages

消息表的数据库模式

create_table "messages", force: true do |t|
  t.datetime "created_at"
  t.datetime "updated_at"
  t.text     "message",    null: false
  t.boolean  "read",       null: false
  t.integer  "from_id",    null: false
  t.integer  "to_id",      null: false
end

会员型号

class Member < ActiveRecord::Base
  has_many :received_messages, :class_name => :messages, :foreign_key => "to_id"
end

消息模型

class Message < ActiveRecord::Base
  belongs_to :member
end

带有辅助方法的 ApplicationController

class ApplicationController < ActionController::Base

  helper_method :unread_messages

  def unread_messages
    @unread_messages ||= current_user.received_messages.where(:unread => true) unless current_user.received_messages.nil?
  end
end

我在 aplication.html.erb 布局模板中收到此语句期间的错误

<span class="badge"><%= unread_messages.count %></span>

什么可能导致这个问题。这是一个非常普遍的错误,通常意味着我忘记设置关联,但是这个关联是不同的,在此之前我不必做一个超出默认命名约定的操作......想法?

4

1 回答 1

1

:class_name键应该是“消息”。

于 2013-10-12T21:25:36.563 回答