On 15 April 2012 23:10, Miguel A. <li...@ruby-forum.com> wrote: > I posted a questionnot long ago, yet I still cannot get pass this simple > issue. > > Begginer Running rails 3.2.2, Ruby 1.8.7 > > I have 2 models, a Hotel (created by scaffolding) and Facility (with > empty controller). I am able to set the 1-to-1 association and siplaying > fields but can't seem to insert it in the databases. Im getting: > > ActiveModel::MassAssignmentSecurity::Error in HotelsController#create > Can't mass-assign protected attributes: @hotel > app/controllers/hotels_controller.rb:48:in 'new' > app/controllers/hotels_controller.rb:48:in 'create' > --> My models are: > > 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 > > class Facility < ActiveRecord::Base > belongs_to :hotel > attr_accessible :concierge, :hotel_id, :room24h > end > My facility controller, as I said, is empty (it can be, right? since im > associating with Hotel?) My hotel_controller is the default after > creating scaffolding, only with 1 added line: > > def new > @hotel = Hotel.new > @hotel.build_facility #-->I added this only, I searched and all i > found was this > > respond_to do |format| > format.html # new.html.erb > format.json { render :json => @hotel } > end > end > > def create > @hotel = Hotel.new(params[:hotel]) > > respond_to do |format| > if @hotel.save > format.html { redirect_to @hotel, :notice => 'Hotel was > successfully created.' } > format.json { render :json => @hotel, :status => :created, > :location => @hotel } > else > format.html { render :action => "new" } > format.json { render :json => @hotel.errors, :status => > :unprocessable_entity } > end > end > end > Finaly, my form html is: > > <%= 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 /> > > <h2>Hotel Facilities</h2> > > <%= f.fields_for :@hotel do |facility_fields| %>
The problem lies here I think, it should possibly be fields_for :facility do ... Colin > <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 %> > The error I am getting when creating is at beggining of question. Should > I be adding more code do the hotel_controller? What could it be? Also, > the facility_controller can be empty right? I mean, I'm adding all the > data from the hotel_controller. > > > Thanks in advance and sorry, im new at RoR :( > > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- gplus.to/clanlaw -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.