У меня есть приложение рельсы с 3 модели что-то вроде:formtastic вложенная форма создания неверного пути к действию
Я пытаюсь создать форму для редактирования таблицы объединения (например, изменить appointment_date. в примере модели):
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]
.
EDIT: Я сумел получить это «работает» путем расширения метода update()
со следующим уродливым хака:
def update
params[:organization_id] = params[:organization_membership][:organization_id]
super
end
Все еще ищете для реального решения этой проблемы.
Возможно ли, что два имеют одинаковое значение? Вы это подтвердили? – vee
Они этого не делают. Страница редактирования находится в '/ active_admin/organization/2/organization_memberships/8/edit'. Я даже проверил 'params [: organization_id]', и он установлен в 2. – user341493