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.

Reply via email to