【发布时间】:2012-05-27 09:09:04
【问题描述】:
我已按照说明操作并尝试为 Rails 3.2.3 安装 simple-private-messages gem。
我知道有很多关于“找不到没有 id 的 [model]”的问题,但它们有点老了,我无法使发布在任何其他问题中的解决方案/想法起作用。
我发现this question 中使用了相同的问题和相同的 gem,但没有提供明确的答案。我也认为问题不是由特定的gem引起的。
我安装插件的步骤:
Added plugin to gemfile, ran bundle install
rails generate simple_private_messages:model User Pmessage
Added this line to user.rb : has_private_messages :class_name => "Pmessage"
rails generate simple_private_messages:scaffold User Pmessage
Uncommented this line in pmessage.rb : attr_accessor :to
然后我将它添加到我的 routes.rb 中: 将“/pmessages”匹配到:“pmessages#index”
访问 /pmessages 会导致此错误消息:
PmessagesController#index 中的 ActiveRecord::RecordNotFound 无法 查找没有 ID Rails.root 的用户:/home/user/RoR/railsapp app/controllers/pmessages_controller.rb:59:in `set_user'
pmessages_controller 包含一个 set_user 方法,它是问题的根源。
private
def set_user
@user = User.find(params:[user_id])
end
我有一个 id=1 的有效用户记录,但是将麻烦的行更改为 @user = User.find(1) 并访问 /pmessages 会导致以下错误消息:
显示 /home/user/RoR/railsapp/app/views/pmessages/_inbox.html.erb 其中第 26 行提出:#User:0xab4dc3c 的未定义方法“登录” 提取的源代码(第 26 行附近):
以这种方式或任何其他方式为用户赋值仍然会导致相同的错误消息:
@user = User.first
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3