Этот вопрос о другом подходе, который я пытаюсь к тому, который задают здесь:
Передача идентификаторов через новую форму
У меня есть group#view page
, к которому обращается Person
. На этой странице Person
может видеть членов группы с помощью методов, которые я разработал. Проблема в том, что мне нужно создать модель Honors
с использованием идентификатора из group
, идентификатора из person
доступа к странице и идентификатора из member
этого group
.
В моем контроллере Honors у меня есть:
def create
@person = Person.find(current_person)
@asked_groupmembership = @person.owned_group_memberships.find_all_by_status(true,:include => [:group, :member])
@asked_groupmembership.each do |agm|
@honor = Honor.create(:group => Group.find(params[:group_id]),
:person => Person.find(current_person), :honored => Person.find(agm.member.id))
end
if @honor.save
...
end
На мой взгляд, у меня есть ссылка, которая направляет person
к форме, чтобы создать новую честь:
<% @asked_groupmembership.each do |agm| %>
<%= link_to "Create Honor", new_honor_path(:group_id => @group.id, :person => current_person.id,
:honored => agm.member.id) %>
Но в моих формах я не могу получить идентификаторы и прочее
<% form_for(:honor, :url => honors_path(:group_id, :person,
:honored)) do |f| %>
Ошибка, которую я получаю, заключается в том, что я не могу найти группу без идентификатора.
Есть идеи? Спасибо.
## Edited2 ##
поменял мой crontroller
def new
#@person = Person.find(params[:person])
#@honored = Person.find(params[:honored])
#@group = Group.find(params[:group_id])
@honor = Honor.new
end
def create
@person = Person.find(current_person)
@honor = Honor.create(:group => Group.find(params[:group_id]),
:person => Person.find(params[:person]),
:honored => Person.find(params[:honored]))
if @honor.save
...
end