Forum: Ruby on Rails Need help fixing an error populating a select box in the insert page but works in the editpage

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
2f027435ab4600f5400aec3fcfbe74e6?d=identicon&s=25 Ruby Rooikie (Guest)
on 2012-11-18 09:52
(Received via mailing list)
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 %>

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 %>
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2012-11-18 10:39
(Received via mailing list)
On 17 November 2012 17:26, Ruby Rooikie <rubyrookie1@gmail.com> wrote:
>
> 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
5c5b50426affe847d550a34ff9eae507?d=identicon&s=25 rubyrookie (Guest)
on 2012-11-18 11:03
(Received via mailing list)
Yes I am setting it up. i got it to work. :) Thanks
5c5b50426affe847d550a34ff9eae507?d=identicon&s=25 rubyrookie (Guest)
on 2012-11-18 11:20
(Received via mailing list)
Thanks I have it working now.
This topic is locked and can not be replied to.