lỗi:thêm các thuộc tính lồng nhau với hộp kiểm trong đường ray 4 sử dụng phân khối
param is missing or the value is empty: color
Tôi đang làm cho một hình thức mà tôi có thể thêm các thuộc tính lồng nhau đến mức kỷ lục phụ huynh và tôi muốn thêm chúng thông qua hộp kiểm. Tôi có mô hình "Car" và mô hình con "Colors" ... nhưng tôi muốn bắt đầu với một số "màu sắc" mặc định ... vì vậy tôi cũng có mẫu "Sample_Colors", thay đổi dựa trên "Car_Models".
Tôi đang cố thêm nhiều "Màu" vào ô "Ô tô" được kết hợp bằng hộp kiểm ... Tôi KHÔNG muốn mối quan hệ HABTM với "Sample_Colors" và "Colors", vì tôi cần bản ghi "Màu sắc" có thể chỉnh sửa và không chỉ là bảng tham gia. Tôi đã làm điều này bằng cách sử dụng HABTM, và vì vậy tôi không thực sự hiểu tại sao tôi không thể tạo một bản ghi không tham gia một cách tương tự.
Nơi tôi đang gặp rắc rối là với các bài tập hàng loạt ... nó hoặc ném các lỗi trên hoặc không thể tìm thấy colors_id ...
để làm rõ những gì tôi đang cố gắng để làm:
Các hộp kiểm cần
1. Tạo bản ghi "Màu" mới (@ color.new) được liên kết với phụ huynh bản ghi @car
2. Đặt cột "value_one" của bản ghi @ color.new thành giá trị sample_color.value_one
3. Đặt cột "value_two" của bản ghi @ color.new thành sample_color.value_two value
4. Số lượng hộp kiểm được tạo == @sample_colors được lặp lại.
car_model.rb
class CarModel
has_many :sample_colors, dependent: :destroy
has_many :cars, dependent: :destroy
car.rb
class Car
has_many :colors, dependent: :destroy
belongs_to :car_model
accepts_nested_attributes_for :colors, allow_destroy: true
sample_color.rb
class SampleColor
belongs_to :car_model
color.rb
class Color
belongs_to :car
accepts_nested_attributes_for :finishes, allow_destroy: true
_form (cho màu sắc thêm)
<%= form_for @car do |f| %>
<%= f.fields_for 'car[color_attributes][]', @color, index: nil do |f| %>
<label class="form-label dk-aqua">Colors for <%= @car.car_name %></label><br>
<div class="row ">
<%= hidden_field_tag "car[color_ids][]", nil %>
<% @sample_colors.each do |sample_color| %>
<%= check_box_tag "car[color_ids][]", "#{sample_color.id}" %>
<%= hidden_field_tag "car[color_value_ones][]", "#{sample_color.value_one}" %>
<%= hidden_field_tag "car[color_value_twos][]", "#{sample_color.value_two}" %>
<%= label_tag :value_one, "#{sample_color.value_one}" %> <br>
<% end %>
</div>
<% end %>
<%= f.submit 'SAVE CHANGES', :class => 'btn btn-green btn-lg btn-block' %>
<%end%>
cars_controller.rb
def update
@color = Color.new(color_params)
@car.color_ids = params[:car][:color_ids] || []
@car.color_value_ones = params[:car][:color_value_ones] || []
@car.color_value_twos = params[:car][:color_value_twos] || []
respond_to do |format|
if @car.update(car_params)
format.html { redirect_to @car, notice: 'Car was successfully updated.' }
format.json { render :show, status: :ok, location: @car }
else
format.html { render :edit }
format.json { render json: @car.errors, status: :unprocessable_entity }
end
end
end
def car_params
params.require(:car).permit(:id, :car_name, :car_model_id, colors_attributes: [:id, {:color_ids => [], :color_value_ones => [], :color_value_twos => []}, :value_one, :value_two,
finishes_attributes: [:id, :value_one] ] )
end
def color_params
params.require(:color).permit(:id, {:color_ids => [], :color_value_ones => [], :color_value_twos => []}, :value_one, :value_two,
finishes_attributes: [:id, :value_one] )
end
Vui lòng cho tôi biết cách tôi có thể cải thiện câu hỏi. Tôi là người mới và tôi không muốn làm tắc nghẽn Stackoverflow với những câu hỏi khó, nhưng đôi khi tôi không biết đủ để biết tại sao nó xấu. Tôi đã xây dựng một ứng dụng mẫu để triệt để nhất có thể về câu hỏi này ... mà đã kiên trì trong một tuần. – NothingToSeeHere