2013-10-12 26 views
0

我有下表,我試圖在用戶之間存儲消息。我建立了關係,盡我所能,但我是得到的消息表NameError in Messages#indexuninitialized constant Member::messagesRails 4.0 - NameError未初始化的Contant - has_many與非常規外鍵的關係

數據庫架構

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 

與輔助方法,

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>

這一說法時收到錯誤的ApplicationController什麼可能會導致這個問題。這是一個非常普遍的錯誤,通常意味着我忘記了設置關聯,但是這種關聯是不同的,在這之前,我沒有必要做一個關聯,這超出了默認的命名約定......想法?

回答

1

:class_name鍵應該是「消息」。

相關問題