У меня есть ситуация, когда одно из моих вложенных полей передается параметрам, но не вставляется в таблицу.Вложенные атрибуты не вставляются в таблицу
Моя модель Company
has_one :incorporation
. Включения есть, прямо сейчас в любом случае, одно поле, вложенная в Company
формы следующим образом
<%= simple_form_for @company, url: url_for(action: @caction, controller: 'incorporations'), html: {id:"incorporationform"}, remote: false, update: { success: "response", failure: "error"} do |company| %>
...
<%= company.simple_fields_for :incorporation do |f| %>
<div class="padded-fields">
<div class="form_subsection">
<%= f.input :trademark_search, as: :radio_buttons, label: 'Would you like us to do a trademark search and provide advice regarding any issues we identify in relation to the name you have selected?', input_html: { class: 'form-control radio radio-false' } %>
</div>
</div>
<% end %>
...
<% end %>
The new
и create
методов в контроллере является
def new
@user=current_user
@company = @user.companies.build
@incorporation = @company.build_incorporation
@action = "new"
@caction = "create"
@remote=false
end
def create
@snapshot="incorporation"
@company = current_user.companies.build(company_params)
@incorporation = @company.build_incorporation
if @company.save
current_user.companies << @company
if params[:final_submit]
redirect_to incorporations_index_path
else
redirect_to edit_incorporation_path(@incorporation), notice: "Successfuly saved incorporation info."
end
else
render 'new', notice: "Something went wrong; form unable to be saved."
end
end
Проблема в том, что, когда я выберите один из переключателей в простых полях, журнал показывает, что данные отправляются на параметры:
Parameters: {"utf8"=>"✓",..., "company"=>{..."incorporation_attributes"=>{"trademark_search"=>"0"}},...}
Но это НЕ Вставляется в таблицу. Вместо этого вводится новая запись, но только с company_id
, id
, created_at
и updated_at
, все из которых являются абсолютно точными. Не существует недопустимых ошибок параметров или чего-либо подобного.
Моего сильный PARAMS выглядеть следующим образом:
def company_params
params.require(:company).permit(:id, :name,...,incorporation_attributes: [:title, :trademark_search, :user_id, :employee_stock_options, :final_submit, :submit, :_destroy],...)
end
Так или иначе параметры не связывая со вставкой таблицы (если это имеет смысл). Что может быть здесь?
Спасибо за любые идеи.
Эй спасибо за то, что смотреть на это. Вы были совершенно правы в линейке @incorporation. Я считаю, что мне нужна компания 'current_user.companies << @, потому что компания и пользователи связаны с моделью объединения. – neanderslob
@neanderslob - Ах, да, в этом случае вам может понадобиться. :) – BroiSatse