从API获取数据(ok 200响应未定义方法'id')

时间:2016-06-07 17:06:03

标签: ruby-on-rails ruby authentication

我得到了以下工作,并根据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

https://authrocket.com/docs/api/memberships

1 个答案:

答案 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

或者您真正想要的任何记录,您应该阻止此错误提升。