过滤器或范围关系以嵌套形式显示

时间:2016-05-13 14:34:56

标签: ruby-on-rails nested-forms

是否可以在嵌套表单中过滤/范围显示的元素?

示例:

class User
  has_many :user_shop_datas
end

观点:

form_for @user do |f|
  f.fields_for :user_shop_datas
  .... 


class UserShopData < ActiveRecord::Base
  belongs_to :user
  validate :user, uniqueness:{scope: :shop_id}
  belongs_to :shop
  scope :from_shop, -> (shop) { where(shop_id: shop) }
end

我想用where shop: current_shop来过滤用户的嵌套表单,这是动态的,我该怎么做?

1 个答案:

答案 0 :(得分:0)

您只需在UserShopData中定义范围(我希望:user_shop_datas的模型为UserShopData

<强> user_shop_data.rb

class UserShopData < ActiveRecord::Base
  scope :from_shop_id, -> (shop_id) { where(shop_id: shop_id) }
end

所以你在视图中查询将是:

form_for @user do |f|
  fields_for @user.user_shop_datas.from_shop_id(current_shop.id)
  ....