Re: [Rails] Need help fixing an error populating a select box in the insert page but works in the editpage

10 views
Skip to first unread message

Colin Law

unread,
Nov 18, 2012, 4:37:34 AM11/18/12
to rubyonra...@googlegroups.com
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.
>
>

rubyrookie

unread,
Nov 18, 2012, 5:01:58 AM11/18/12
to rubyonra...@googlegroups.com
Yes I am setting it up. i got it to work. :) Thanks


On Saturday, November 17, 2012 9:26:54 AM UTC-8, Ruby Rooikie 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" %>
24:   
25:   <div class="actions">
26:     <%= f.submit %>

rubyrookie

unread,
Nov 18, 2012, 5:19:43 AM11/18/12
to rubyonra...@googlegroups.com
Thanks I have it working now.
Reply all
Reply to author
Forward
0 new messages