Рельсы заполняют collection_select - PullRequest
0 голосов
/ 28 декабря 2011

Я пытаюсь автоматически заполнить поле выбора в рельсах реляционной таблицей.

Venture_Users содержит список пользователей и идентификаторов предприятий, поэтому я хочу найти всех пользователей в рамках определенного предприятия, а затем отобразить пользователей через user_id и user.name.

Я попробовал следующее

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

Однако последний атрибут: name не работает, потому что он не находится непосредственно в моих результатах, и мне нужно выполнить запрос к моей таблице пользователей, чтобы получить имя пользователя. '

По сути, мне нужно, но я не знаю, как это сделать, - изменить мой оператор VentureUsers.find_all, чтобы объединить атрибуты из моей пользовательской таблицы.

Спасибо, Mike

1 Ответ

2 голосов
/ 28 декабря 2011

Это должно быть довольно просто, если у вас правильно установлены ассоциации.Если я правильно понял ваш сценарий, то вам, вероятно, следует настроить его следующим образом:

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

Если ваши ассоциации действительно выглядят так, то вы сможете создать такой выбор:

<%= f.collection_select(:user_id, @venture.users, :id, :name) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...