rails 4.1 nil 的未定义方法 class
rails 4.1 undefined method for nil class
您好,我正在尝试显示当前用户的好友列表/或可能待定的好友,但我遇到了这样的错误
NoMethodError in UserFriendships#index
undefined method `each' for nil:NilClass
这是显示错误的内容
<% @user_friendships.each do |friendship| %>
这是我在控制器中的代码
before_filter :authenticate_user!
def index
@user_friendship = current_user.user_friendships.all
end
这是我在索引中的代码
<% @user_friendships.each do |friendship| %>
<% friend = friendship.friend %>
<div id="<%= dom_id(friendship) %>" class="friend now">
<div class="span1">
<%= link_to image_tag(friend.gravatar_url), profile_path(friend) %>
</div>
</div>
</div>
<% end %>
我已经在我的控制器中定义了@user_friendship,但它似乎无法正常工作我在这里有点新,正在整理东西,但这个错误让我无法继续前进,如果有人可以的话帮帮我就好了!
Rails 在 current_user 上看不到您定义的方法 user_friendships
,因此 @user_friendship 为空。
为了您的使用,您只需要直接在 current_user
上调用 id
,例如
@user_id = current_user.id
然后,您可以在数据库中搜索具有此特定 ID 的用户
@current_user = User.find(@user_id)
因此,在您的情况下,您可以获得这个新@current_user 的任何方法;
def index
@user_friendship = @current_user.user_friendships.all
end
然后继续列表
<% @user_friendships.each do |friendship| %>
Rails是一个MVC框架,意思是Models, Views, and Controllers。模型主要用于实现数据库(如 MYSql)和控制器之间的通信。视图基本上就是用户所看到的(如HTML、CSS),它们通过控制器进行通信并掌握所需的数据。 Controller 做的工作最多。控制器接收来自用户的请求,通过模型将请求指向数据库,并将结果 returns 指向视图。这些都是Controller在Server的帮助下完成的。有关 Rails MVC 框架和 MVC 的进一步说明,请查看这些链接
How are Model, View and Controller connected?
What is MVC in Ruby on Rails?
http://betterexplained.com/articles/intermediate-rails-understanding-models-views-and-controllers/
http://www.codelearn.org/ruby-on-rails-tutorial/mvc-in-rails
http://blog.codinghorror.com/understanding-model-view-controller/
您好,我正在尝试显示当前用户的好友列表/或可能待定的好友,但我遇到了这样的错误
NoMethodError in UserFriendships#index
undefined method `each' for nil:NilClass
这是显示错误的内容
<% @user_friendships.each do |friendship| %>
这是我在控制器中的代码
before_filter :authenticate_user!
def index
@user_friendship = current_user.user_friendships.all
end
这是我在索引中的代码
<% @user_friendships.each do |friendship| %>
<% friend = friendship.friend %>
<div id="<%= dom_id(friendship) %>" class="friend now">
<div class="span1">
<%= link_to image_tag(friend.gravatar_url), profile_path(friend) %>
</div>
</div>
</div>
<% end %>
我已经在我的控制器中定义了@user_friendship,但它似乎无法正常工作我在这里有点新,正在整理东西,但这个错误让我无法继续前进,如果有人可以的话帮帮我就好了!
Rails 在 current_user 上看不到您定义的方法 user_friendships
,因此 @user_friendship 为空。
为了您的使用,您只需要直接在 current_user
上调用 id
,例如
@user_id = current_user.id
然后,您可以在数据库中搜索具有此特定 ID 的用户
@current_user = User.find(@user_id)
因此,在您的情况下,您可以获得这个新@current_user 的任何方法;
def index
@user_friendship = @current_user.user_friendships.all
end
然后继续列表
<% @user_friendships.each do |friendship| %>
Rails是一个MVC框架,意思是Models, Views, and Controllers。模型主要用于实现数据库(如 MYSql)和控制器之间的通信。视图基本上就是用户所看到的(如HTML、CSS),它们通过控制器进行通信并掌握所需的数据。 Controller 做的工作最多。控制器接收来自用户的请求,通过模型将请求指向数据库,并将结果 returns 指向视图。这些都是Controller在Server的帮助下完成的。有关 Rails MVC 框架和 MVC 的进一步说明,请查看这些链接
How are Model, View and Controller connected?
What is MVC in Ruby on Rails?
http://betterexplained.com/articles/intermediate-rails-understanding-models-views-and-controllers/
http://www.codelearn.org/ruby-on-rails-tutorial/mvc-in-rails
http://blog.codinghorror.com/understanding-model-view-controller/