2014-10-02 2 views
0

레일 애플리케이션에서 사용자 편집 페이지의 중첩 된 특성을 업데이트하려고합니다. 콘솔에서 다음을 수행 할 수 있습니다.Formtastic을 사용하여 중첩 된 레일 - 업데이트 연결을 얻을 수 없음

foo = User.first.memberships.first 
foo.organization_id = 10 
foo.save 

이렇게하면 조직 ID가 업데이트됩니다. formtastic을 사용하여이 작업을 수행하려고합니다. 첫째, 내 사용자 모델은 다음과 같습니다

<%= semantic_form_for [:admin, @resource], role: "form" do |f| %> 

<div class="form-group"> 
    <%= f.input :email, label: "Email" %> 
    <%= f.input :avatar, as: :file, name: "Avatar" %> 
    <%= f.input :first_name, label: "First Name" %> 
    <%= f.input :last_name, label: "Last Name" %> 
    <%= f.input :admin, as: :boolean, label: "Admin" %> 
    <%= f.input :password, as: :password, label: "Password" %> 
    <%= f.input :password_confirmation, as: :password, label: "Password Confirmation" %> 
</div> 

<div class="form-group"> 
    <%= f.inputs :for => :memberships do |input| %> 
    <%= f.input :organizations, :as => :radio, :collection => memberships_for_user %> 
    <% end %> 
</div> 

<div class="small-spacer"></div> 
<%= f.submit "Save User", class: "btn primary" %> 
<% end %> 

컬렉션의 도우미 방법은 이것이다 :

accepts_nested_attributes_for :memberships 

양식은 다음과 같습니다

def memberships_for_user 
    Organization.all 
       .sort_by { |o| o.name } 
       .map  { |o| [o.name, o.id] } 
end 

중첩 된 속성에 대한 다음의 HTML 모양은 다음과 같습니다.

<li class="choice"> 
    <label for="user_organization_ids_10"> 
    <input id="user_organization_ids_10" name="user[organization_ids]" type="radio" value="10" />Beer-Davis 
    </label> 
</li> 

이 양식을 수정하여 Memberships 조인 모델의 organizaiton_id를 업데이트 할 수 있습니까?

답변

0

시도

<%= f.inputs :for => :memberships do |mf| %> 
    <%= mf.input :organizations, :as => :radio, :collection => memberships_for_user %> 
<% end %>