Event
이 저장되지만 새 양식에서 여러 아티스트를 선택한 경우에도 "artists":[]
이 비어 있습니다. 새로운 형태의 관련 부분은 다음과 같습니다배열 출력을 조인 테이블 (허용되지 않은 매개 변수)로 저장
<%= f.fields_for :event_artists do |fea| %>
<%= fea.collection_select :artist_id, Artist.all, "id", "name", {include_blank: true}, {multiple: true} %>
<% end %>
로그 : 여기
Parameters: {"utf8"=>"✓", "authenticity_token"=>"OEh0j/cp35s/FABhsETxeQKnqZCKXrbZMpeeEE6P+KSM3QVF94zIluB1rqAD65ci5CP+R6tQS8V1f3SXIQ6Vtw==", "event"=>{"name"=>"", "date(1i)"=>"2016", "date(2i)"=>"7", "date(3i)"=>"22", "date(4i)"=>"01", "date(5i)"=>"55", "description"=>"", "venue_id"=>"1", "event_artists_attributes"=>{"0"=>{"artist_id"=>["", "1", "2"]}}}, "commit"=>"Create"}
Unpermitted parameter: artist_id
이 매개 변수가
def event_params
params.require(:event).permit(:id, :name, :date, :venue_id, :description, { event_artists_attributes: [:artist_id] })
end
event_artist 모델은 다음과 같습니다 컨트롤러에 허용됩니다 :
class EventArtist < ApplicationRecord
belongs_to :event, optional: true
belongs_to :artist
end
이벤트 모델 :
class Event < ApplicationRecord
belongs_to :venue
has_many :event_artists
has_many :artists, through: :event_artists
accepts_nested_attributes_for :event_artists, reject_if: :all_blank, allow_destroy: true
end
이벤트 컨트롤러 :
def create
@event = Event.new(event_params)
if @event.save
render json: @event, status: :created, location: @event
else
render json: @event.errors, status: :unprocessable_entity
end
end
def new
@event = Event.new
@artist = @event.event_artists.build
end
흠, 아직 허용되지 않은 오류 – sivanes
전체 매개 변수 해시를 덤프 할 수 있습니까? –
게시물을 업데이트했습니다. – sivanes