我得到了下面的工作,並根據current_user.id(請參閱200 Ok響應)調用成員資料,這顯示在我的日誌中。從API獲取數據(ok 200響應未定義方法的ID)
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
您修正了錯誤消息「NoMethodError(未定義的方法'id'爲'.......'後面會出現什麼內容?'我在其中用」關係「 。'all'方法(假設它是一個ActiveRecord模型)返回一個記錄列表,即使數據庫中只有一行匹配,你仍然需要從列表中選擇該項目 –
我剛剛粘貼了其餘的錯誤。 – bradpotts
我有正確的想法和錯誤的單詞'Collection'表示它基本上是一個數組,你的'membership_info'方法返回一個行列表,即使列表的大小是一行,你也需要選擇該項。將其更改爲'AuthRocket :: Membership.all(user_id:current_user.id).first'可能會修復它。 –