Mike Silvis
Mike Silvis

Reputation: 1309

Rails populate collection_select

I am trying to auto populate a select box in rails with a relational table.

Venture_Users has a list of Users and Venture ID's so I want to find all Users under a specific Venture and then display the users via user_id, and user.name.

I tried the following

        <%= f.collection_select(:user_id, VentureUser.find_all_by_venture_id(@venture.id), :user_id, :name) %>

However the last attribute :name doesn't work because it is not directly in my results and I need to run a query on my user table to get the name of the user.'

Essentially what I need to but don't know how to do is modify my VentureUsers.find_all statement to join attributes from my user table.

Thanks, Mike

Upvotes: 0

Views: 222

Answers (1)

DanneManne
DanneManne

Reputation: 21180

This should be quite straight forward as long as you have your associations set correctly. If I have understood your scenario correctly then you should probably have it set up like this:

class Venture < ActiveRecord::Base
  has_many :venture_users
  has_many :users, :through => :venture_users
end

class VentureUser < ActiveRecord::Base
  belongs_to :venture
  belongs_to :user
end

If your associations indeed look like this, then you should be able to create the select like this:

<%= f.collection_select(:user_id, @venture.users, :id, :name) %>

Upvotes: 2

Related Questions