私はラッドレールの初心者です。1つのフォームから2つの表に同時に書きたかったのです。
テーブル machine (nom と role を列として) とテーブル ipvfour (machine_id と ip を列として) があります。
そこで私はモデルの中で has-and-belongs-to many という関係を作りました。
しかし、失敗した場合に新しいマシンを追加しようとすると
不明な属性: ip
理由がよくわかりません。誰か助けてください。
machine.controllers:
def create @machine = Machine.new(params[:machine])
ipvfour = @machine.ip.create(params[:ip])
respond_to do |format|
if @machine.save && ipvfour.save
flash[:notice] = 'Machine was successfully created.'
format.html { redirect_to(@machine) }
format.xml { render :xml => @machine, :status => :created, :location => @machine }
そうしないと
format.html { render :action => "new" }
format.xml { render :xml => @machine.errors, :status => :unprocessable_entity }
終わり
終わり
終わり
new.html.erb (マシン)
新しい機械
'form', :locals => { :f_machine => f_machine } %>
_form.html.erb (マシン)
<% f_machine.fields_for :ip do |f_ip| %> <%= render :partial => 'ipvfours/form', :locals => { :f_ip => f_ip } %>
<% end %>
_form.html.erb (ipvfours)
<%= f_ip.label :ip %><br />
<%= f_ip.text_field :ip %>
マシンを追加するページはすべてのフィールドで正しく表示されますが、... が原因で db への書き込みに失敗したようです。誰かが私を助けてくれることを願っています。
前もって感謝します。