我有一个group#view
页面,可由Person
访问。在此页面中,Person
可以通过我开发的方法查看group
的成员。问题是我需要使用Honors
中的ID,访问该页面的group
中的ID以及来自person
的ID来创建模型member
这个group
。
在我的Honors
控制器中,我有:
def create
@person = Person.find(current_person)
@honor = Honor.create(:group => Group.find(params[:group_id]),
:person => Person.find(current_person), :honored => Person.find(current_person))
if @honor.save
...
end
问题在于:honored => Person.find(current_person)
,这是没有得到正确的ID,我不知道如何获得它。
在我看来:
<% @asked_groupmembership.each do |agm| %>
<% form_for(:honor, :url => honors_path(:group_id => @group.id, :person => current_person.id,:honor => agm.member.id)) do |f| %>
任何帮助?
感谢。
答案 0 :(得分:0)
如果您需要3个组件来正确创建荣誉记录,则需要从表单中传递它们。你似乎正确地做了那个部分。
:group_id => @group.id
:person => current_person.id
:honor => agm.member.id
要创建记录,请访问传递的变量。
Honor.create(:group => Group.find(params[:group_id]),
:person => Person.find(params[:person]),
:honored => Person.find(params[:honor]))
理解上述内容并不是最有效的,但用于演示目的。您可能希望避免冗余数据库命中,例如:person => current_person
而不是其他查询