我有一个小表单部分,您可以选择通过用户添加为协作者。
<%= f.select :user_id, options_from_collection_for_select(User.premium, "id", "username") %>
但它给了我一个所有高级用户的列表,但我希望能够看到高级用户和管理员用户。
我试过(User.premium || User.admin)
但它似乎无法工作我仍然只有高级用户。
答案 0 :(得分:3)
最佳做法是在控制器中提供视图的所有数据。这意味着您不应该在视图中进行数据库查询。而是在控制器中准备所有必需的变量。
class UsersController < ApplicationController
def index
@users = User.where(type: ['premium', 'admin'])
end
end
<%= f.select :user_id, options_from_collection_for_select(@users, "id", "username") %>
<!-- OR shorter -->
<%= f.collection_select :user_id, @users, :id, :username %>
答案 1 :(得分:-1)
尝试使用OR条件。假设用户类型存储在type
表
user
列中
<%= f.select :user_id, options_from_collection_for_select(User.where("type = 'premium' OR type = 'admin'"), "id", "username") %>