【发布时间】:2018-07-17 08:04:20
【问题描述】:
在我的 rails 应用程序中存在以下关系:
user belongs_to :team ,
element belongs_to :team ,
task belongs_to :element
然后用户可以创建属于某个元素的任务。
当用户创建任务时,他们可以选择他们希望任务所属的元素。如何仅显示属于 current_user 团队的元素?我正在使用 Devise 获取current_user。
以下示例不起作用。
<div class="field">
<%= form.label :element_id %>
<%= form.select :element_id, options_for_select(Element.current_user.team_id.map{|s|[s.title, s.id]}),{ :multiple => true} %>
</div>
我也尝试从tasks_controller.rb 文件中调用下面的方法,但它也不起作用
def new
@task = Task.new
@tasks_element_dropdown = Element.current_user.team_id.map{|s|[s.title, s.id]}
end
在tasks/_form.html.erb文件中,我用下面的代码调用了方法
<%= form.select :element_id, options_for_select(@tasks_element_dropdown),{ :multiple => true} %>
当我尝试下面的示例时,它确实有效,但它显示了所有元素,我只希望显示属于用户团队的元素
<div class="field">
<%= form.label :element_id %>
<%= form.select :element_id, options_for_select(Element.all.map{|s|[s.title, s.id]}),{ :multiple => true} %>
</div>
【问题讨论】:
标签: ruby-on-rails ruby devise associations relationship