может кто-нибудь проверить мой код ниже.
У меня есть форма с вложенной формой, и я все время получаю информацию о «Непозволенных параметрах»: as:
Unpermitted parameters: :item_custom_inputs_attributes, :item_custom_select_inputs_attributes, :item_custom_date_inputs_attributes
Unpermitted parameters: :item_custom_inputs_attributes, :item_custom_select_inputs_attributes, :item_custom_date_inputs_attributes
Unpermitted parameters: :item_custom_inputs_attributes, :item_custom_select_inputs_attributes, :item_custom_date_inputs_attributes
Unpermitted parameters: :item_custom_inputs_attributes, :item_custom_select_inputs_attributes, :item_custom_date_inputs_attributes
Здесьтакже значения параметров в контроллере:
<ActionController::Parameters {"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"XV038rd3aC43ZGw18MZlTxlho3IdsUPJlD/azWfBKdDgakbY/rmRqeNTjRv4KAczi5LMcClZA41xav5HMYOnzw==", "account_show_update_button"=>"true", "item"=><ActionController::Parameters {"name"=>"Bags & Backpacks", "found_at_date"=>"2018-11-27", "show_found_date"=>"1", "found_at_time"=>"10:33:22.000", "show_found_time"=>"1", "expiration_date"=>"2018-12-27","item_storage_location_id"=>"", "show_image"=>"0", "category_id"=>"3", "tag_list"=>"", "description"=>"", "internal_notes"=>"", "item_custom_inputs_attributes"=><ActionController::Parameters {"11"=>{"data"=>"text data eeeeeeeeeeee"}, "8"=>{"data"=>""}} permitted: false>, "item_custom_select_inputs_attributes"=>{"7"=>{"data"=>"9"}}, "item_custom_date_inputs_attributes"=>{"4"=>{"data"=>""}}} permitted: false>, "commit"=>"Update", "q"=>{"state_eq"=>"queued", "view_type"=>"list"}, "controller"=>"items", "action"=>"update", "venue_permalink"=>"asgardia", "id"=>"667"} permitted: false>
Разрешение контроллера для одного из недопустимых параметров:
def item_params
params.require(:item).permit(
:name, :found_at_date, :found_at_time, :description, :internal_notes, :show_found_date, :show_found_time,
:show_image, :image, :category_id, :expiration_date, :claim_form, :location, :flagged, :archive_reason_id,
:tag_list, :item_storage_location_id, :is_active, item_custom_inputs_attributes: []
)
end
Модели:
class Item < ApplicationRecord
has_many :item_custom_inputs
accepts_nested_attributes_for :item_custom_inputs, allow_destroy: true
end
class ItemCustomInput < ApplicationRecord
belongs_to :item_custom_field
belongs_to :item
end
Вложенные поля формы:
<% @venue.get_custom_logging_fields_without_section.each do |field| %>
<% field_type = field.class.name if field.present? %>
<div class="form-group">
<% if field_type == "ItemCustomField" %>
<label><%= field.title if field.title.present? %></label>
<input type="text" name="item[item_custom_inputs_attributes][<%=field.id %>][data]", value= "<%= field.item_custom_input.data if field.item_custom_input.present? %>", id="item_item_custom_inputs_attributes_<%= field.id %>_data", class="form-control" />
<% elsif field_type == "ItemCustomDateField" %>
<label><%= field.title + " DATE" %></label>
<input type="date" name="item[item_custom_date_inputs_attributes][<%=field.id %>][data]", value= "<%= field.item_custom_date_input.data if field.item_custom_date_input.present? %>", id="item_item_custom_date_inputs_attributes_<%= field.id %>_data", class="form-control" />
<label><%= field.title + " TIME" %></label>
<input type="time" name="item[item_custom_date_inputs_attributes][<%= field.id %>][data]", class="form-control", step: 1 />
<% elsif field_type == "ItemCustomSelectField" %>
<label><%= field.title if field.title.present? %></label>
<%= select_tag "item[item_custom_select_inputs_attributes][#{field.id}][data]", options_from_collection_for_select(field.item_custom_select_values, :id, :name), class: "form-control" %>
<% end %>
</div>
<% end %>
Очевидно, я что-то упускаю, но не могу найти что.Я пробовал с другой комбинацией в формате разрешения item_params для "item_custom_inputs_attributes
", но ничего не работает.