Ruby on rails 选择和用户角色集合中的选项
我有一个小表单,你可以选择通过用户添加为合作者Ruby on rails 选择和用户角色集合中的选项,ruby-on-rails,ruby,select,Ruby On Rails,Ruby,Select,我有一个小表单,你可以选择通过用户添加为合作者 <%= f.select :user_id, options_from_collection_for_select(User.premium, "id", "username") %> 但是它给了我一个所有高级用户的列表,但是我希望能够看到高级用户和管理员用户 我试过(User.premium | | User.admin) 但它似乎不起作用,我仍然只获得高级用户。尝试使用OR条件。假设用户类型存储在user表的type列中
<%= f.select :user_id, options_from_collection_for_select(User.premium, "id", "username") %>
但是它给了我一个所有高级用户的列表,但是我希望能够看到高级用户和管理员用户
我试过(User.premium | | User.admin)
但它似乎不起作用,我仍然只获得高级用户。尝试使用OR条件。假设用户类型存储在
user
表的type
列中
<%= f.select :user_id, options_from_collection_for_select(User.where("type = 'premium' OR type = 'admin'"), "id", "username") %>
尝试使用OR条件。假设用户类型存储在
user
表的type
列中
<%= f.select :user_id, options_from_collection_for_select(User.where("type = 'premium' OR type = 'admin'"), "id", "username") %>
最佳做法是在控制器中为您的视图提供所有数据。这意味着您不应该在视图中进行数据库查询。相反,在控制器中准备所有必需的变量 控制器
class UsersController
看法
最佳做法是在控制器中为您的视图提供所有数据。这意味着您不应该在视图中进行数据库查询。相反,在控制器中准备所有必需的变量 控制器
class UsersController
看法
我不明白您到底想选择什么?“高级”或“管理”或“基本”的下拉列表如下所示?另外,yrUser.premium
是错误的。我正在尝试创建premium(1)和admin(2)用户的下拉列表。为什么我的User.premium错了?User.premium | | | User.admin
不起作用的原因是| |
是一个布尔运算符。在Ruby中,它返回第一个真实的操作数,例如true | | false
返回true
和nil | | 10
返回10
。Ruby中除了false
和nil
之外的所有内容都是真实的,包括由User.premium
返回的ActiveRecord::Relation对象,因此这是由User.premium | User.admin
返回的值(并且从不计算User.admin
)。如果您改为编写User.admin | | User.premium
,则会返回User.admin
的结果,并且不会对User.premium
进行评估。我不明白您到底想选择什么?“高级”或“管理”或“基本”的下拉列表如下所示?另外,yrUser.premium
是错误的。我正在尝试创建premium(1)和admin(2)用户的下拉列表。为什么我的User.premium错了?User.premium | | | User.admin
不起作用的原因是| |
是一个布尔运算符。在Ruby中,它返回第一个真实的操作数,例如true | | false
返回true
和nil | | 10
返回10
。Ruby中除了false
和nil
之外的所有内容都是真实的,包括由User.premium
返回的ActiveRecord::Relation对象,因此这是由User.premium | User.admin
返回的值(并且从不计算User.admin
)。如果您改为编写User.admin | | User.premium
,则会返回User.admin
的结果,并且不会对User.premium
进行评估。此操作应涵盖所有内容
是!所有模型访问都应该发生在视图之外。我再说一遍,是的!这个应该涵盖所有内容
是的!所有模型访问都应该发生在视图之外。我再说一遍,是的!为什么要投否决票?这与上面的答案相似,这就是为什么否决票?这与上面的答案类似,并且有效
<%= f.select :user_id, options_from_collection_for_select(@users, "id", "username") %>
<!-- OR shorter -->
<%= f.collection_select :user_id, @users, :id, :username %>