0

我有has_many通过用户,程序和注册模型的关联。想法是用户可以将Prog添加到他的配置文件列表中,并且Prog可以拒绝或接受来自用户的请求。从数据库检索连接模型列的正确方法?

这是怎么接受的方法是这样的:

招生#接受

def accept 
    @enrollment = Enrollment.find_by_user_id(params[:id]) 
    @enrollment.status = "accepted" 
    @enrollment.save! 
    .... 
end 

我为什么已了解这是不对的,如果我理解正确的方法接受报名必须得到user.id和前卫。 ID从数据库中检索数据。所以,user.id与link_to一起传递,但是如何显示prog.id来帮助Enrollment查找我需要的列?

<% @prog.users.each do |user| %> 
    <%= link_to "#{user.email} accept", controller: "/enrollments", action: "accept", id: user.id, method: "post" %> 
    <% end %> 

我的猜测是,如果这是真的比让我知道我应该专注于使其work.Thanks一些基本的东西被遗漏。

回答

0

如果我正确理解你,你只需要传递两个参数(用于user_id和prog_id)到链接并找到这两个参数的注册。 查看:

<%= link_to "#{user.email} accept", controller: :enrollments, action: :accept, user_id: user.id, prog_id: @prog.id, method: :post %> 

并在控制器:

@enrollment = Enrollment.find_by_user_id_and_prog_id params[:user_id], params[:prog_id] 
+0

我会尽快检查并让你know.thanks – vitdes

相关问题