On 17 November 2012 17:26, Ruby Rooikie <
rubyr...@gmail.com> wrote:
> Two Models Country and Bank. The below form is used for insert and edit page
> works fine . f.collection_select works fine for edit page but throws error
> for insert page. I think error it is trying to populate the selected value
> in the combo box but country id is not available. Can you help me fixing the
> issue? What is prompt used for?
>
>
>
>
> Error
>
> undefined method `map' for nil:NilClass
>
> Extracted source (around line #23):
>
> 20: <%= f.label :country_id %><br />
> 21:
> 22:
> 23: <%= f.collection_select :country_id, @countries, :id, :name,
> :prompt => "Test" %>
My guess is that @countries is nil (the clue is in the error
message). Are you setting that up in the controller action for
insert?
Colin
> 24:
> 25: <div class="actions">
> 26: <%= f.submit %>
>
> class Bank < ActiveRecord::Base
> attr_accessible :name,:country_id
> belongs_to :country
> validates :name, :presence => true
>
> validates_presence_of :country
> end
>
>
> class Country < ActiveRecord::Base
> attr_accessible :name
> end
>
> Form
>
>
>
> <%= form_for(@bank) do |f| %>
> <% if @bank.errors.any? %>
> <div id="error_explanation">
> <h2><%= pluralize(@bank.errors.count, "error") %> prohibited this bank
> from being saved:</h2>
>
> <ul>
> <% @bank.errors.full_messages.each do |msg| %>
> <li><%= msg %></li>
> <% end %>
> </ul>
> </div>
> <% end %>
>
> <div class="field">
> <%= f.label :name %><br />
> <%= f.text_field :name %>
> </div>
>
> <div class="field">
> <%= f.label :country_id %><br />
>
>
> <%= f.collection_select :country_id, @countries, :id, :name, :prompt =>
> "Test" %>
>
>
> <div class="actions">
> <%= f.submit %>
> </div>
> <% end %>
>
>
>
> --
> 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
rubyonra...@googlegroups.com.
> To unsubscribe from this group, send email to
>
rubyonrails-ta...@googlegroups.com.
> To view this discussion on the web visit
>
https://groups.google.com/d/msg/rubyonrails-talk/-/qf9xpNmAkjsJ.
> For more options, visit
https://groups.google.com/groups/opt_out.
>
>