我已按照说明操作并尝试为 Rails 3.2.3 安装simple-private-messages gem。
我知道有很多关于“找不到没有 id 的 [model]”的问题,但它们有点老了,我无法使任何其他问题中发布的解决方案/想法起作用。
我发现这个问题中使用了相同的问题和相同的 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 行提出:未定义的方法 `login' for #User:0xab4dc3c 提取的源代码(在第 26 行附近):
以这种方式或任何其他方式为 User 赋值仍然会导致相同的错误消息:
@user = User.first