我为 nil:NilClass 得到了一个未定义的方法 `each' | 尝试将帖子添加到用户个人资料

蒲公英

我正在努力使用我的 rails 应用程序,因为我试图在他们的个人资料页面上添加来自用户的帖子。我正在使用设备,并且已经在网上寻找解决方案,但似乎都没有工作。

我正在运行 Rails 服务器 5.2。

这是我的一些代码:

#app/models/user.rb
class User < ActiveRecord::Base
   has_many :posts
end

#app/models/post.rb
class Post < ActiveRecord::Base
   belongs_to :user
end

这是 users.controller.rb

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])

    @posts = current_user.posts
  end

end

和我的posts_controller.rb

class PostsController < ApplicationController
  before_action :set_post, only: [:show, :edit, :update, :destroy]
  before_action :authenticate_user!, except: [:show, :index]
  # GET /posts
  # GET /posts.json
  def index
    @posts = Post.all
  end

这是 users/show.html.erb

<%= @user.about %>

  <% @posts.each do |post| %>
    <%= post.title %>
<% end %>

它似乎不起作用,因为我遇到了这个特定的错误:nil:NilClass 的未定义方法 `each'

<%= @user.about %>

  <% @posts.each do |post| %>
    <%= post.title %>
<% end %>

维博尔

既然你找到了解决方案,这里是建议。

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])

    @posts = current_user.posts
  end
end

将其更改为

class UsersController < ApplicationController
  before_action :authenticate_user!

  def show
    @user = current_user
    @posts = current_user.posts
  end
end
  • 添加before_action :authenticate_user!是为了获取当前用户,在大多数情况下用户需要登录才能查看/编辑他们的个人资料,因此我们应该要求用户登录
  • 更改为@user = current_user因为现在登录的用户是我们需要显示或编辑的用户对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我为nil:NilClass获取了一个未定义的方法“ each” ...但是它已定义?

来自分类Dev

为nil:NilClass获取未定义的方法“ each”

来自分类Dev

为nil:NilClass定义方法“ each”

来自分类Dev

我为什么要在Rails中为nil:NilClass获得未定义的方法“ each”?

来自分类Dev

为nil:NilClass提供Rails未定义方法`each'...但已定义

来自分类Dev

从另一个控制器调用时,nil:NilClass的未定义方法“ each”

来自分类Dev

调用另一个控制器索引时,nil:NilClass的未定义方法“ each”

来自分类Dev

尝试在Rails应用中建立关系时,我得到nil:NilClass1的“未定义方法`hostname”

来自分类Dev

Rails 4:NoMethodError:nil:NilClass的未定义方法“ each”

来自分类Dev

nil:NilClass的未定义方法“ each” ...为什么?

来自分类Dev

ActionView :: Template :: Error(nil:NilClass的未定义方法“ each”):?

来自分类Dev

nil:NilClass的未定义方法`each'-Ruby on Rails

来自分类Dev

nil:NilClass (ActiveMerchant) 的未定义方法 `each'

来自分类Dev

Ruby on Rails - nil:NilClass 错误的未定义方法`each'

来自分类Dev

nil 的未定义方法 `each':索引的 NilClass 错误

来自分类Dev

为 nil:NilClass 定义的 Rails 未定义方法 `email'

来自分类Dev

尝试显示哈希中的字段,但为nil:NilClass获取未定义的方法“ []”

来自分类Dev

尝试重定向以获取错误消息,而不是为nil:NilClass获取未定义的方法“ path”

来自分类Dev

Rails 生成数字而不是名称,或者我为 nil:NilClass 得到未定义的方法“名称”

来自分类Dev

为nil:NilClass获取未定义的方法“错误”

来自分类Dev

NoMethodError未定义的方法`name'为nil:NilClass

来自分类Dev

未定义的方法'update'为nil:NilClass后支架

来自分类Dev

为nil:NilClass获取未定义的方法“错误”

来自分类Dev

NoMethodError未定义的方法`name'为nil:NilClass

来自分类Dev

NoMethodError未定义的方法'[] ='为nil:NilClass

来自分类Dev

为nil:NilClass设计未定义的方法“ build”

来自分类Dev

Rails为nil:NilClass使用的未定义方法`user'

来自分类Dev

Rails为nil:NilClass使用的未定义方法`id'

来自分类Dev

NoMethodError(为 nil:NilClass 未定义方法 `created_at')

Related 相关文章

  1. 1

    我为nil:NilClass获取了一个未定义的方法“ each” ...但是它已定义?

  2. 2

    为nil:NilClass获取未定义的方法“ each”

  3. 3

    为nil:NilClass定义方法“ each”

  4. 4

    我为什么要在Rails中为nil:NilClass获得未定义的方法“ each”?

  5. 5

    为nil:NilClass提供Rails未定义方法`each'...但已定义

  6. 6

    从另一个控制器调用时,nil:NilClass的未定义方法“ each”

  7. 7

    调用另一个控制器索引时,nil:NilClass的未定义方法“ each”

  8. 8

    尝试在Rails应用中建立关系时,我得到nil:NilClass1的“未定义方法`hostname”

  9. 9

    Rails 4:NoMethodError:nil:NilClass的未定义方法“ each”

  10. 10

    nil:NilClass的未定义方法“ each” ...为什么?

  11. 11

    ActionView :: Template :: Error(nil:NilClass的未定义方法“ each”):?

  12. 12

    nil:NilClass的未定义方法`each'-Ruby on Rails

  13. 13

    nil:NilClass (ActiveMerchant) 的未定义方法 `each'

  14. 14

    Ruby on Rails - nil:NilClass 错误的未定义方法`each'

  15. 15

    nil 的未定义方法 `each':索引的 NilClass 错误

  16. 16

    为 nil:NilClass 定义的 Rails 未定义方法 `email'

  17. 17

    尝试显示哈希中的字段,但为nil:NilClass获取未定义的方法“ []”

  18. 18

    尝试重定向以获取错误消息,而不是为nil:NilClass获取未定义的方法“ path”

  19. 19

    Rails 生成数字而不是名称,或者我为 nil:NilClass 得到未定义的方法“名称”

  20. 20

    为nil:NilClass获取未定义的方法“错误”

  21. 21

    NoMethodError未定义的方法`name'为nil:NilClass

  22. 22

    未定义的方法'update'为nil:NilClass后支架

  23. 23

    为nil:NilClass获取未定义的方法“错误”

  24. 24

    NoMethodError未定义的方法`name'为nil:NilClass

  25. 25

    NoMethodError未定义的方法'[] ='为nil:NilClass

  26. 26

    为nil:NilClass设计未定义的方法“ build”

  27. 27

    Rails为nil:NilClass使用的未定义方法`user'

  28. 28

    Rails为nil:NilClass使用的未定义方法`id'

  29. 29

    NoMethodError(为 nil:NilClass 未定义方法 `created_at')

热门标签

归档