が、私は初心者だと、多くの記事やrailscastチュートリアルを検索しましたし、まだカントは、この団体の事を回避ルビーon Railsの - 。協会発行:(
私は2つのモデルがあり、ホテル(足場によって作成された)とファシリティはホテルにファシリティを関連付けますが、ファシリティテーブルにはブール型で必要なすべてのカラムがあるので、そのテーブルの行は1つのホテルで行います。
私はそれを表示し、施設を保存/編集/更新することはできません。モデルファシリティを作成するときに、hotel_id列を作成しました。 私のコードは次のとおりです。
モデル:
class Facility < ActiveRecord::Base
belongs_to :hotel
attr_accessible :concierge, :hotel_id, :room24h
end
class Hotel < ActiveRecord::Base
has_one :facility, :dependent => :destroy
accepts_nested_attributes_for :facility, :allow_destroy => true
attr_accessible :name, :rating, :recommended, :facility_attributes
end
マイ形式のビューでは、次のとおりです。
コントローラ用として<%= form_for(@hotel) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :rating %><br />
<%= f.number_field :rating %>
</div>
<div class="field">
<%= f.label :recommended %><br />
<%= f.check_box :recommended %>
</div>
<br />
Hotel Facilities
<%= f.fields_for :facility do |facility_fields| %>
<div class="field">
<%= facility_fields.label :room24h, "24h Room Service:" %>
<%= facility_fields.check_box :room24h %>
</div>
<div class="field">
<%= facility_fields.label "Concierge:" %>
<%= facility_fields.check_box :concierge %>
</div>
<%end%>
<div class="actions">
<%= f.submit %>
</div>
<%end%>
、hotels_controllerはあなたの場合と同じです足場をちょうど完了し、私のfacilities_controllerは空です。
それが今の形で施設を見せているが、私は、「作成」をクリックし、送信したときに、私が取得:パラメータ入力用として
"Can't mass-assign protected attributes: @hotel"
と
app/controllers/hotels_controller.rb:46:in `new'
app/controllers/hotels_controller.rb:46:in `create'
を:
{"hotel"=>{"rating"=>"1",
"name"=>"aaa",
"recommended"=>"0",
"@hotel"=>{"room24h"=>"1",
"concierge"=>"1"}},
"commit"=>"Create Hotel",
"utf8"=>"✓",
"authenticity_token"=>"YU7KEJ8qz0iQcXPGkLP6BSJn7JL6df1HvuS5JnjK2eU="}
アイデアはありますか?コントローラーには何が欠けていますか?再度お返事ありがとうございます
try '<%= f.fields_for @ hotel.facility do | facility_fields | %> ' – klump
あなたはストリートイングリッシュを書いている理由はありますか? de = the? – Jonathan
新しいホテルを作成または保存するコントローラコードを質問に追加します。 @Amarの答えは良い推測ですが、コントローラコードがなければ、それは単なる推測です。 – mliebelt