【发布时间】:2014-05-18 10:47:24
【问题描述】:
这是ActiveRecord having 2 FKs from the same column in a table 的后续问题,我收到消息“未初始化的常量 User::Message”,但我不知道是什么原因造成的。
我的消息控制器的创建操作是
def create
@message = current_user.packages.build(message_params)
@message.sender = current_user
@message.receiver = User.find(params[:id])
@message.date = Time.now
if @message.save
flash[:success] = "Message Created!"
else
flash[:danger] = "Message Not Created!"
end
redirect_to user_path
end
我将控制器添加到我的 routes.rb 文件中
resources :messages, only: [:create, :destroy]
我的用户控制器的操作是
def show
@user = User.find(params[:id])
@message = @user.messages.build #error is thrown here
@package_feed_items = @user.packages.paginate(page: params[:page],:per_page => 5)
@route_feed_items = @user.routes.paginate(page: params[:page],:per_page => 5)
end
该表单位于视图目录中我的“消息”文件夹的一部分中。这是从我的用户控制器中的视图调用的
<%= render 'messages/create_message_modal' %>
我的消息模型现在是
class Message < ActiveRecord::Base
belongs_to :sender, class_name => :user, foreign_key => 'sender_id'
belongs_to :receiver, class_name => :user, foreign_key => 'receiver_id'
default_scope -> { order('created_at DESC') }
validates :receiver_id, presence: true
validates :sender_id, presence: true
validates :body, presence: true
validates :date, presence: true
state_machine :initial => :unOpened do
state :unOpened, value: "Un-Opened"
state :opened, value: "Opened"
state :deleted, value: "Deleted"
event :open do
transition :unOpened => :opened
end
event :delete do
transition :opened => :deleted
end
end
end
我的用户模型是
class User < ActiveRecord::Base
... other relations ...
has_many :messages
... validation & state machine ...
end
编辑 我的日志文件的尾部
Completed 500 Internal Server Error in 8ms
NameError (uninitialized constant User::Message):app/controllers/users_controller.rb:33:in `show'
Rendered /Users/jeff/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.4ms)
Rendered /Users/jeff/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.7ms)
Rendered /Users/jeff/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
Rendered /Users/jeff/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (11.2ms)
【问题讨论】:
-
您介意向我们展示错误日志吗?
-
请同时发布您的消息模型。两个模型都在 app/models 下吗?它们的文件名是什么?
-
我刚刚发布了完整的模型。我所有的模型都在 app/models 文件夹下,它们被称为 message.rb 和 user.rb
标签: ruby-on-rails ruby activerecord ruby-on-rails-4