Ruby on rails Ruby-ReviewController#索引中的NoMethodError

Ruby on rails Ruby-ReviewController#索引中的NoMethodError,ruby-on-rails,Ruby On Rails,试图调用当前登录用户的评论,以便在该特定视图页面上填充以显示当前用户的所有评论。我还尝试了reviews=current_user.reviews,但仍然不起作用。我对rails还相当陌生。任何帮助都将不胜感激 我强烈建议大家阅读。这相当简单,但会节省很多时间 我仍然在给你指引方向 更改您的索引操作,如下所示 def索引 @评论=当前用户评论 结束 现在,在您的index.html.erb中,迭代@reviews以呈现其细节。签出我发现玩“应该工作什么”最简单的方法是在控制台中进行实验 我会检

试图调用当前登录用户的评论,以便在该特定视图页面上填充以显示当前用户的所有评论。我还尝试了
reviews=current_user.reviews
,但仍然不起作用。我对rails还相当陌生。任何帮助都将不胜感激


我强烈建议大家阅读。这相当简单,但会节省很多时间

我仍然在给你指引方向

更改您的
索引
操作,如下所示

def索引
@评论=当前用户评论
结束

现在,在您的
index.html.erb
中,迭代
@reviews
以呈现其细节。签出

我发现玩“应该工作什么”最简单的方法是在控制台中进行实验

我会检查这些东西:

  • reviews表中的记录具有用户id列
  • 在schema.rb中查找reviews表并检查它是否有user_id列,如果没有,下一步是通过rails迁移向表中添加一列

  • 用户模型和评论模型是链接的
  • app/models/review.rb应包含:

    belongs_to :user
    
    has_many :reviews
    
    app/models/user.rb应包含:

    belongs_to :user
    
    has_many :reviews
    
  • 现在在rails控制台中使用它
  • 打开你的终端。 打开rails控制台:

    bundle exec rails console
    
    为了提高速度,我通常在终端中使用一个简单的字母来命名变量

    例如,可以从查看最后一个用户开始

    >  u = User.last  
    >  u.reviews   # see if it works here, much easier to debug and try again
    
    创建新用户并将其添加到

    >  v = User.new(name: "Bob", password: "blah", password_confirmation: "blah")
    >  r = Review.new( user: v, ... set other fields as needed.. ) 
    >  v.reviews
    
    希望他们能帮助你前进