【问题标题】:undefined method `posts' for nil:NilClass errornil:NilClass 错误的未定义方法“posts”
【发布时间】:2019-02-19 01:33:17
【问题描述】:

我收到此错误:

nil:NilClass 的未定义方法 `posts'

我有一个模型 Post,这是我的 PostsController

def new
  @post = current_user.posts.build
end

def create 
  @user = current_user 
  @post = @user.posts.build(post_params)
end

【问题讨论】:

  • 你能展示你的模型 user.rb 和 post.rb
  • current_user 为 nil,您确定您使用的方法正确且用户已登录?
  • 你把before_action :authenticate_user!放在控制器里了吗? (假设您使用的是设计)
  • 和ps。您可以直接使用 current_user ,无需将其存储在实例变量中......所以只需这样做:@post = current_user.posts.build(post_params)

标签: ruby-on-rails controller associations


【解决方案1】:

代码中的current_user 字段未设置,其值为nil。因此,当您尝试访问current_user.posts 时,它会转换为获取nil 类对象的帖子。由于nilclass 的对象没有这样的方法,我们得到一个错误。

【讨论】:

    猜你喜欢
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多