how to pre-select a collection_select inside a form_for?

100 views
Skip to first unread message

S Ahmed

unread,
Feb 28, 2012, 10:44:01 PM2/28/12
to rubyonra...@googlegroups.com
I have a form_for like:

<%= form_for @user, ....   |f| %>

<%= f.collection_select :friend_type, FriendType.all, :id, :name %>


Now in my new action, I set the friend_type from the querystring, so it already has a value of e.g. 3 (which is the id).

How can I have this pre-selected when it renders?


Anthony

unread,
Feb 29, 2012, 12:29:14 AM2/29/12
to rubyonra...@googlegroups.com
Set the html_options parameter in collection_select to { :selected => params[:friend_type] } 

Dave Aronson

unread,
Feb 29, 2012, 3:30:07 PM2/29/12
to rubyonra...@googlegroups.com
http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

might help you on this. It seems to depend on what exact objects
you've got set up. I'm not too clear on it myself!

-Dave

--
Dave Aronson:  Available Cleared Ruby on Rails Freelancer
(NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at
www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com

Alpha Blue

unread,
Feb 29, 2012, 11:29:35 PM2/29/12
to rubyonra...@googlegroups.com
I'm curious what you have as far as relationships in your FriendType
model? Does it belong_to :user?

If so,

<%= f.collection_select(:user_id, FriendType.all, :id, :name, options=
{:prompt => false}, {:class => 'yourCustomClass'}) %>

Hope that helps you out.

--
Posted via http://www.ruby-forum.com/.

S Ahmed

unread,
Mar 1, 2012, 10:49:40 AM3/1/12
to rubyonra...@googlegroups.com
thanks I'll try that tonight.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/XeKXSvxhJyQJ.

To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

S Ahmed

unread,
Mar 2, 2012, 8:17:12 PM3/2/12
to rubyonra...@googlegroups.com
Ok I added:

page.html

And my select is actually empty, it has no options!   But when running rails server I can see the select and options (and the dropdown list in the browser).

Why is it not rendering using capybara?

My controller for new is:

@account = Account.new

My view page has:

<% form_for  .. %>

  <%= f.label :plan_type%>
<%= f.collection_select :friend_type, FriendType.all, :id, :name, { :selected => params[:friend_type] } %>

<%end%>

My test looks like:

describe "User pages" do

  subject { page }

  describe "new" do
    before { visit '/user/new' }

   describe "with valid information" do
      before do
        select 'XXXX', :from => "user[friend_type]"
        fill_in ...
        ...
      end

     it "should create a user" do   
           expect { click_button "Create"}.to change(User, :count).by(1)
     end

   end
  end

end


Is this a timing issue?


On Wed, Feb 29, 2012 at 12:29 AM, Anthony <anthonyz...@gmail.com> wrote:

S Ahmed

unread,
Mar 3, 2012, 1:02:25 PM3/3/12
to rubyonra...@googlegroups.com
ok figured it out, I had to run seed on my test db.

thanks!
Reply all
Reply to author
Forward
0 new messages