나는 세 가지 모델이 있습니다중첩 된 모델 형태는
class Rate < ActiveRecord::Base
attr_accessible :user_id, :car_id, :rate
belongs_to :user
belongs_to :car
end
class User < ActiveRecord::Base
attr_accessible :name
has_many :rates
accepts_nested_attributes_for :rates
end
class Car < ActiveRecord::Base
attr_accessible :name
has_many :rates
accepts_nested_attributes_for :rates
end
그리고 하나의 컨트롤러 :
class UsersController < ResourceController
def new
# Assume user is loaded
@user.rates.build
end
end
나는 목록을 연결합니다 중첩 된 형태를 구축하기 위해 노력하고있어 사용자/자동차 및 관련 요금.
뭔가 같은 :
는USER_ID CAR_ID RATE
1 1 10
1 2 20
1 3 30
2 1 40
3 2 50
나는 제대로 구축하기 위해 fields_for
도우미를 구축하는 방법을 알아낼 수 없습니다 :
<% form_for @user do |f| %>
<%= @user.name %><br />
<% Car.all.each do |car| %>
<%= car.name %><br />
<%= f.fields_for :rates do |r| %>
<%= r.number_field :rate %>
<% end %>
<% end %>
<% end %>
문제는 다음과 같이 내가 데이터를 저장하는 속도 모델을하고 싶은 것입니다 user_id
및 car_id
에 대한 올바른 매개 변수 같은
뭔가 :이 같은 fields_for
더 명시 적 인 노력했습니다
user[car=1][rate]
user[car=2][rate]
:
이<%= r.fields_for 'user[car][rate]' %>
하지만 여전히 제대로 중첩 된 매개 변수를 구축하지 않습니다. 자동차 매개 변수가 올바르게 식별되지 않았습니다.
도움이 될 것입니다. 감사.
편집 : 컨트롤러 작업은 사용자 권한이어야합니다. 위의 예는 간결하게하기 위해 단축되었지만 다른 사용자 관련 속성은 양식을 통해 사용할 수 있으므로 사용자 컨트롤러를 사용해야합니다.
답변 : 나는 그것을 할 방법을 알아 냈습니다. 나는 그것을 설명하는 added my own answer을 가졌습니다.
원래 질문에이 내용을 추가해야합니다. 양식은 요금뿐만 아니라 사용자를위한 다른 속성을 공유합니다. 나는 간결하게 그것을 단축했다. 그것은 사용자 컨트롤러 아래에 있어야합니다. 나는 원래의 질문을 업데이트 할 것이다. –
세부 사항을 언급하지 않고서는 사용자 속성 업데이트와 속도 추가를 혼합하는 것이 논리적이지 않습니다. 한 가지 형식은 너무 많은 관심을 필요로합니다. 다른 작업은 다른 양식에서 더 낫습니다. 추가 비율은 비율을 추가하는 것입니다. 업데이트 프로필은 업데이트 프로필입니다. –
가능합니다. 내가 어떻게 해결했는지에 대한 내 대답을 추가했습니다. –