use*_*963 15 activerecord ruby-on-rails associations has-many
我不确定我的问题措辞是否正确.
我有三个型号:User,Item,和UserItem.
user has_many :user_items
user has_many :items, through :user_items
item has_many :user_items
item has_many :users -> {uniq}, through :user_items
item belongs_to :user
user_item belongs_to :user
user_item belongs_to :item
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来查看用户是否有一个项目if在我的项目视图中生成语句但是这里是catch,user_items enum status: [ :pending, approved].所以我需要看看是否current_user有某个:pending项目.
例如,当用户访问item1的视图页面时,我有item_controller的show动作声明@item = Item.find_by_id(params[:id]).但是,我可以用这个@item来看看用户是否有这个项目?
lei*_*liu 27
尝试:
current_user.items.exists?(params[:id])
Run Code Online (Sandbox Code Playgroud)
要么
current_user.items.exists?(@item.id)
Run Code Online (Sandbox Code Playgroud)
在这里扩展@lei-liu 的回答。可以通过以下方式找到记录是否存在于众多记录中:current_user.items.exists?(params[:id])
同时,exists?允许过滤除 之外的列id,还允许更复杂的条件,如下所示:
current_user.items.exists?('id > 3')
current_user.items.exists?(name: 'some_name')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15121 次 |
| 最近记录: |