-1
pen_attributes에 attr_accessible이 있다고 생각되는 경우에도 "can not assign assign : pen"오류를 방지하기 위해 펜 특성을 종이 모델에 추가해야했습니다.중첩 된 양식을 할당 할 수 없습니다. 작업을 만듭니다.
이제 '알 수없는 특성 : 펜'오류가 발생합니다. 그것은 나를 창조 활동의 두 번째 행으로 안내합니다. 나는 그것을 이해할 수 없다.
기본적으로 용지 새로 만들기 작업을 통해 펜을 만들고 용지에 할당해야합니다.
Paper model
attr_accessible :name, :size, :line,
:pen_attributes,
:pen, :colour, :style
has_many :pens
accepts_nested_attributes_for :pens
Pens model
attr_accessible :name, :size, :line, :paper_attributes, :paper_id
belongs_to :paper
<%= simple_nested_form_for @paper do |f| %>
<%= f.input :name %>
<%= f.input :size, :placeholder => "text" %>
<%= f.input :line %>
<%= f.fields_for @pen do |h| %>
<%= h.input :pen, %>
<%= h.input :colour %>
<%= h.button :submit, :label => "create" %>
<% end %>
<% end %>
Paper Controller
def new
@user = current_user
@paper = @user.paper.build(params[:paper])
@pen = Pen.new(params[:pen])
end
def create
@user = current_user
@paper = @user.papers.build(params[:paper])
@pen = @paper.pens.build(params[:pen])
if @paper.save
flash[:notice] = "#{@paper.name} Created"
redirect_to(:action => "index")
else
flash.now[:notice] = "Error"
render 'new'
end
end
{"utf8"=>"✓",
"authenticity_token"=>"Z8vncB9ewDM1bWiKfsPHOGlkxcGpfhPjv0xpamudIIs=",
"paper"=>{"name"=>"three",
"size"=>"three",
"colour"=>"red",
"pen"=>{"colour"=>"test",
"pen"=>"test"}},
"commit"=>"Create"}
감사합니다. 도움이되었습니다. 이제 시도해 볼 때 펜의 속성을 비워 둘 수 없다는 것을 알려줍니다. 어떤 생각? – Demetri
컨트롤러의 params [: pen]에 대한 모든 참조를 params [: pens]로 변경 했습니까? (그것이 당신이해야했던 조정 중 하나라고 가정하면,보기에서 ...) –