2012-05-03 59 views
0

我嘗試使用具有自定義作用域的grouped_selects group_method。用戶只能看到他所屬的項目和任務。我如何使用分組選擇group_method與範圍?

這是工作,我得到了我的所有任務項目選擇:

# using simple_form 
<%= f.input :project_id, :as => :grouped_select, 
      :collection => Project.my_scope(current_user), 
      :group_method => :tasks %> 

這是行不通的。我嘗試從my_scope獲取任務。

# using simple_form 
<%= f.input :project_id, :as => :grouped_select, 
      :collection => Project.my_scope(current_user), 
      :group_method => Task.my_scope(current_user) %> 

UPDATE

我也與軌道缺省助手嘗試這樣做,這似乎工作:

<%= f.grouped_collection_select(:project_id, 
           Project.my_scope(current_user), 
           :"tasks.my_scope(#{current_user.id})", 
           :name, :id, :name) %> 

這是一種常見的做法還是有其他的方式來實現我的需要?

回答

3

它不工作,因爲:group_method指定什麼方法來通過它返回什麼

所以範圍不能有使用來電,來組選擇。你想達到什麼結果?也許你可能會限制你的收藏 - 如果你只想顯示與CURRENT_USER(只是假定的)任務項目 然後,你可以做水木清華這樣

# using simple_form 
<%= f.input :project_id, :as => :grouped_select, 
      :collection => Project.my_scope(current_user).joins(:tasks).where(:assigned_to => current_user), 
      :group_method => :task %> 
+0

謝謝您的回答。用戶可以屬於一個項目,但只能看到用戶所屬的任務。限制性項目沒有達到我所需要的。 – tonymarschall