0

次のような3つのモデルを備えたレールアプリがあります。

has_many_through

結合テーブルを編集するためのフォームを作成しようとしています (例: サンプル モデルの予定日を変更します)。

1 <%= semantic_form_for [:active_admin, :organization, @organization_membership] do |f| %>
2   <%= f.inputs "Organization" do %>
3     <h2><%= @organization_membership.organization.name %></h2>
4     <% @organization_membership.organization.organization_memberships.each do |organization_member| %>
5       <%= organization_member.user.name %></br>
6     <% end %>
7   <% end %>
8   <%= f.inputs "New Member" do %>
9     <span id="new-member"></span>
10     <% if !resource.user.nil? %>
11       <h3><%= resource.user.login %></h3>
12     <% end %>
13     <%= f.input :user_id, :as => :hidden, :input_html => { :id => 'user-id' } %>
14     <%= f.input :organization_id, :as => :hidden, :value => @organization_membership.organization.id %>
15     <%= f.input :start_date, :as => :date_picker %>
16     <%= f.input :end_date,   :as => :date_picker %>
17   <% end %>
18   <%= f.actions %>
19 <% end %>

問題は、これが次の html を含むページをレンダリングすることです。

<form accept-charset="UTF-8"
      action        ="/active_admin/organizations/8/organization_memberships/8"
      class         ="formtastic organization_membership"
      id            ="edit_organization_membership_8"
      method        ="post"
      novalidate    ="novalidate">

問題は、action. 次のようになります。

/active_admin/organizations/:organization_id/organization_membership/organization_membership_id

しかし、 の代わりに:organization_id、formtastic は を入れていorganization_membership_idます。私の問題は一番上の行にあると思います<%= semantic_form_for [:active_admin, :organization, @organization_membership]

update()編集:次の醜いハックでメソッドを拡張することにより、この「機能」を得ることができました:

def update
    params[:organization_id] = params[:organization_membership][:organization_id]                                                                            
    super
end

この問題の本当の解決策をまだ探しています。

4

1 に答える 1