使用 Collection_select 显示基于当前用户的名称列表
Using Collection_select to display a list of names based on current user
大家好,我是 Ruby 的新手,想知道是否可以使用集合 select 来为用户提供共享相同内容的其他用户的列表 business_id 和他们一样。
目前我的 collection_select 允许 select 数据库中每个用户的离子:
<%= f.collection_select :id, Customer.all, :id, :full_name, :prompt => 'Select' %>
我想知道我是否可以做类似
的事情
<%= f.collection_select :id, User.find_by_business_id(current_user.business_id), ... %>
但这不起作用。
current_user 是 applications_controller 中定义的一种方法,用于查找当前登录的用户。
请帮忙,因为我是 rails 的新手,找不到解决方案!谢谢
您需要做的就是创建一个查询以获取与当前用户共享 business_id 的用户列表。而不是:
<%= f.collection_select :id, User.all, :id, :full_name, :prompt => 'Select' %>
您想用一部分用户替换 User.all
。假设该字段在用户 table 和 current_user 中都被称为 business_id,这可能就是您想要的:
<%= f.collection_select :id, User.where(business_id: current_user.business_id), :id, :full_name, :prompt => 'Select' %>
行 User.where(business_id: current_user.business_id)
所做的是提供一组用户,其 business_id 列包含特定值(在本例中与 current_user 的值相同)。
如果您不是特别熟悉 .where() 或 Active Record 查询接口,我强烈建议您在闲暇时仔细阅读 this documentation。
附录:
针对您最近对问题的更新,您不想使用 .find_by_business_id()
方法。这只会 return 一个结果(第一个符合其条件的记录。
大家好,我是 Ruby 的新手,想知道是否可以使用集合 select 来为用户提供共享相同内容的其他用户的列表 business_id 和他们一样。
目前我的 collection_select 允许 select 数据库中每个用户的离子:
<%= f.collection_select :id, Customer.all, :id, :full_name, :prompt => 'Select' %>
我想知道我是否可以做类似
的事情<%= f.collection_select :id, User.find_by_business_id(current_user.business_id), ... %>
但这不起作用。
current_user 是 applications_controller 中定义的一种方法,用于查找当前登录的用户。
请帮忙,因为我是 rails 的新手,找不到解决方案!谢谢
您需要做的就是创建一个查询以获取与当前用户共享 business_id 的用户列表。而不是:
<%= f.collection_select :id, User.all, :id, :full_name, :prompt => 'Select' %>
您想用一部分用户替换 User.all
。假设该字段在用户 table 和 current_user 中都被称为 business_id,这可能就是您想要的:
<%= f.collection_select :id, User.where(business_id: current_user.business_id), :id, :full_name, :prompt => 'Select' %>
行 User.where(business_id: current_user.business_id)
所做的是提供一组用户,其 business_id 列包含特定值(在本例中与 current_user 的值相同)。
如果您不是特别熟悉 .where() 或 Active Record 查询接口,我强烈建议您在闲暇时仔细阅读 this documentation。
附录:
针对您最近对问题的更新,您不想使用 .find_by_business_id()
方法。这只会 return 一个结果(第一个符合其条件的记录。