2015-04-03 55 views
0

我在Rails中使用了設計和自定義控制器。從用戶ID創建數組

在控制器,我有:

def new 
    @users = Users.where(store_id: 5) 
    @array_of_users = [] 
end 

在視圖中我有:

<%= f.hidden_field :employees, value: @users %> 

基本上,我只是想獲得員工ID,並將它們存儲到一個數組,所以如果我們有一個id = 50的用戶,另一個id = 56,然後將[50,56]存儲在隱藏字段中。 我該怎麼做?

回答

1

使用此:

def new 
    @users = Users.where(store_id: 5) 
    @user_ids = @users.pluck(:id) 
    @array_of_users = [] # no ides what is this for, so kept as it is. 
end 

然後裏面的觀點:

<%= f.hidden_field :employees, :multiple => true, value: @user_ids %> 
+0

您應該避免每個操作有多個實例變量。如果你打算使用'@ users',那麼在'hidden_​​field'行中使用'collect'而不是'pluck'不會是一個開銷。 – RPinel 2015-04-03 20:33:58

0

就直接從數據庫中選擇用戶ID,它會返回一個數組。如果將數組轉換爲字符串,您將得到如下所示的結果:[1,5,6,7]

def new 
    @users = User.where(:store_id, 5).select("id") 
end 

<%= f.hidden_field :employees, value: @users.to_s %>