我当前正在尝试显示当前用户邀请的所有用户,但是由于@users
始终为nil
,因此无法正常工作。
我正在http://localhost:3000/inivtation/new
上尝试
我的InvitationsController
...
def new
super
@users = User.all # This also doesn't work
end
...
我的邀请函/new.html.erb
<%= @users.each do |user| %>
<%= image_tag avatar_url(user) %>
<%= user.fullname %>
<% end %>
错误:
ActionView::Template::Error (undefined method `each' for nil:NilClass):
答案 0 :(得分:2)
有很多方法可以解决您的问题。请查看我的观点,然后选择您认为合适的任何一种观点。
方法。 1(最简单)
请只使用此代码,它将对您很简单:)
<%= User.all.each do |user| %>
<%= image_tag avatar_url(user) %>
<%= user.fullname %>
<% end %>
方法。 2(确定,但不是最好)
您的InvitationsController
class InvitationsController < Devise::InvitationsController
def new
@users = User.all
super
end
end
您的邀请函/new.html.erb
<%= @users.each do |user| %>
<%= image_tag avatar_url(user) %>
<%= user.fullname %>
<% end %>
方法。 3(最佳)
您的InvitationsController
class InvitationsController < Devise::InvitationsController
def new
self.resource = resource_class.new
@users = User.all
render :new
end
end
您的邀请函/new.html.erb
<%= @users.each do |user| %>
<%= image_tag avatar_url(user) %>
<%= user.fullname %>
<% end %>
覆盖方法的设计路线。 2和方法。 3
请确保在路由中覆盖默认的邀请控制器:)
# config/routes.rb
devise_for :users, controllers: {
invitations: "invitations"
}