我有一个user_id列。而不是呼叫所有成员我如何根据当前用户和user_id调用成员?
这是我的控制器,我尝试将.all更改为user_id或current_user.id以及基于示例的许多变体。仍然无法得到它。我也没有模特(使用authrocket)。 create动作也可以工作并插入user_id,我在底部有一个def current_user。
class Members::MainsController < ApplicationController
# Member Profile List
def index
@members_mains.user_id = current_user.id
@members_mains = Members::Main.all
end
private
# Common Callbacks
def set_members_main
@members_main = Members::Main.find(params[:id])
end
# White List
def members_main_params
params.require(:members_main).permit(:mfirstname, :mlastname, :mtitle, :memail, :mphone, :mnotes, :smfacebook, :smtwitter, :smlinkedin, :user_id)
end
end
答案 0 :(得分:1)
如果我做对了,你的索引动作应该是这样的:
# Member Profile List
def index
@current_member = Members::Main.find(current_user.id)
end
答案 1 :(得分:0)
您是否打算显示所有会员的个人资料列表?
如果没有,您的index
操作可以简单地删除。如果是这样,那么您根本不会对user_id进行过滤,您可以删除该行。
要加载特定user_id
的成员个人资料,请尝试show
这样的操作:
def show
@members_main = Members::Main.find_by(user_id: params[:id])
end
这将根据URL中的:id加载成员个人资料。
如果您只想显示当前用户自己的个人资料,请使用current_user.id
,它会为您提供AuthRocket用户的ID。
def show
@members_main = Members::Main.find_by(user_id: current_user.id)
end
在任何一种情况下,您都可能需要从:show
回调中移除set_members_main
。
最后,您可能希望从:user_id
中删除members_main_params
,以便用户无法修改AuthRocket user_id。您只想直接控制它(就像您在create
操作中一样)。
希望这一点非常明确,可以让您继续前行,但我可能会根据您实际打算用于index
和show
的功能而稍微偏离。