[Rails] Re: form_tag + fields_for Rails 4
Have you tried with form_for instead of form_tag?
On Tuesday, December 10, 2013 7:45:15 PM UTC-2, Andre Mello wrote:
-- On Tuesday, December 10, 2013 7:45:15 PM UTC-2, Andre Mello wrote:
Hi There,I'm trying to user fields_for inside a form_tag, but i can't catch it on my controller.I just take some html code off to makes it easy to readmy view...i'm using campuses_path(current_church, @campus) instead form_for @campus, because my route is likeresources :campuses, :path => ":church/campuses"<%= form_tag campuses_path(current_church, @campus), :class => 'form-horizontal', :method => :post do %>
<%= text_field :campus, :name %>
<%= text_area :campus, :description %>
<%= fields_for :addresses do |b| %>
<%= b.text_field :street %>
<%= b.text_field :street2 %>
<%= b.text_field :city %>
<%= b.text_field :state %>
<%= b.text_field :zip_code %>
<% end %>
<input type='submit' value='Save' >
<% end %>my controllerclass CampusesController < ApplicationController
def new
@campus = Campus.new
end
def create
@campus = Campus.new(campus_params)
@campus.church_id = session[:church_id]
# i'm just trying this way, because it's not creating automatic (accepts_nested_attributes_for)
@campus.addresses.new(params[:addresses]) # the error line
if @campus.save!
...
else
...
end
private
# Never trust parameters from the scary internet, only allow the white list through.
def campus_params
params.require(:campus).permit(:name, :description, :cover, :addesses)
# i've tried instead :addresses
# {:addresses => []}
# :addresses []
end
endmy modelclass Campus < ActiveRecord::Base
belongs_to :church
has_many :addresses, :as => :addressable
accepts_nested_attributes_for :addresses
end
Request parameters {"utf8"=>"✓", "authenticity_token"=>"B0OBKKM3PQ/ Jkh1ebcKyrKZGJuauJeN3O/ BWv8Vc7qE=", "campus"=>{"name"=>"Campus name", "description"=>"campus description"}, "addresses"=>{"street"=>" Street name", "street2"=>"", "city"=>"city name", "state"=>"state name", "zip_code"=>"00000"}, "action"=>"create", "controller"=>"campuses", "church"=>"greenhouse-church"} Params at Controller:params[:addresses] => {"street"=>"Street name", "street2"=>"", "city"=>"city name", "state"=>"state name", "zip_code"=>"00000"} >> params[:campus] => {"name"=>"Campus name", "description"=>"campus description"}>>
With this code the error is:
ActiveModel::ForbiddenAttributesError @campus.addresses.new(params[:addresses ])Let me know if you need more information.Thank You,André
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/3a8e8ffc-ba3d-44d1-b3e0-ad7c6125d2a6%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home