我在一个控制器中定义了一个方法,该方法在不同的控制器表中创建一行。我能够传递所有数据来创建新行,除了当前用户的ID,我试图通过params获取。我的用户表是用devise设置的,所以我有current_user方法,但是无法弄清楚获取user_id的语法。
CONTROLLER_ALPHA
def generate_betas
params[:uni_num].to_i.times do Beta.create(alpha_id: params[:user_id], user_id: params[:alpha_id], rand_num: rand(1000000))
end
end
CONTROLLER_BETA
if current_user.present?
@betas = current_user.betas
else
@betas = Beta.all
alpha has_many:beta 测试版belongs_to:alpha
<%= form_tag("/alphas/#{params[:id]}/generate_betas", method:"post") do %>
当我拉起控制台时,我会显示除user_id之外的所有beta元素。
问题在于第二个参数user_id:params [:alpha_id]。使用current_user方法,我的用户只能看到他们创建的alpha。此外,用户已登录,因此我认为我应该能够从此方法中获取它,但我不确定如何。
有没有人知道抓取user_id的正确语法?