我得到了以下工作,并根据current_user.id(参见200 Ok响应)调用会员数据,这显示在我的日志中。
GET https://api-e1.authrocket.com/v1/memberships?user_id=usr_0vKhXTr0K1bz6kUipKNnjD
-> 200 (103.4 ms)
NoMethodError (undefined method `id' for #<NCore::Collection:0x007f50c82a7e50>):app/controllers/directory/categories_controller.rb:13:in `index'
我使用的是current_user.id。
@directory_category.user_id = current_user.id
尝试更改它以抓取用户的membership .id
@directory_category.user_id = membership_info.id
我正在使用的完整创建语句。
# Create
def create
@directory_category = Directory::Category.new(directory_category_params)
@directory_category.user_id = membership_info.id
if @directory_category.save
redirect_to directory_categories_path, notice: 'Category was successfully created.'
else
render :new
end
end
# Directory Category Index
def index
@directory_categories = Directory::Category.where(user_id: membership_info.id)
end
我的尝试,确实说200 ok获取current_user id并将其放在最后的AuthRocket :: Membership.all语句中如下:
def current_user
@_current_user ||= AuthRocket::Session.from_token(session[:ar_token]).try(:user)
end
def membership_info
AuthRocket::Membership.all user_id: current_user.id
end
答案 0 :(得分:1)
看起来像你的
def membership_info
AuthRocket::Membership.all user_id: current_user.id
end
方法实际上是返回一个集合而不是单个项目。如果你把它改成
def membership_info
AuthRocket::Membership.all(user_id: current_user.id).first
end
或者您真正想要的任何记录,您应该阻止此错误提升。