Ruby on rails 如何使用rails中的包含条件获取值?

Ruby on rails 如何使用rails中的包含条件获取值?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我与该商店有很多联系,并将物品加入其中,以便收到该商店的物品 format.json { render json: {:shop => @shops.as_json(:include => :items)}} 现在它给出了属于该商店的所有商品,但我想得到具有特定条件的商品,比如item_type=“associates”。那我该怎么做呢?请帮帮我 编辑 我在中提出了一个新问题,您应该使用ActiveRecord过滤数据,然后对过滤后的数据调用as_json 您可以执行以下操作:

我与该商店有很多联系,并将物品加入其中,以便收到该商店的物品

 format.json { render json: {:shop => @shops.as_json(:include => :items)}}
现在它给出了属于该商店的所有商品,但我想得到具有特定条件的商品,比如item_type=“associates”。那我该怎么做呢?请帮帮我

编辑


我在

中提出了一个新问题,您应该使用ActiveRecord过滤数据,然后对过滤后的数据调用as_json

您可以执行以下操作:

@shops = Shop.includes(:items).where("items.itemp_type = ?", 'accesories')
format.json { render json: { :shop => @shops.as_json(:include => :items) } }

您应该使用ActiveRecord过滤数据,然后对过滤后的数据调用as_json

您可以执行以下操作:

@shops = Shop.includes(:items).where("items.itemp_type = ?", 'accesories')
format.json { render json: { :shop => @shops.as_json(:include => :items) } }

一种方法是使用要渲染的对象创建哈希,然后将其传递给render方法。像这样:

respond_to do |format|
  format.json  { render :json => {:shops => @shops, 
                                  :items => @items }}
end
如果模型没有通过活动记录关联,那么这可能是最好的解决方案

如果关联确实存在,则可以将
:include参数传递给呈现调用
,如下所示:

respond_to do |format|
  format.json  { render :json => @shops.to_json(:include => [:items])}
end

请注意,如果采用这种方法,则不必检索上面部分中的@items变量,Rails将自动从
@shops
变量加载它。

一种方法是使用要渲染的对象创建哈希,然后将其传递给render方法。像这样:

respond_to do |format|
  format.json  { render :json => {:shops => @shops, 
                                  :items => @items }}
end
如果模型没有通过活动记录关联,那么这可能是最好的解决方案

如果关联确实存在,则可以将
:include参数传递给呈现调用
,如下所示:

respond_to do |format|
  format.json  { render :json => @shops.to_json(:include => [:items])}
end

请注意,如果采用这种方法,您不必检索上面部分中的@items变量,Rails将自动从
@shops
变量加载它。

对不起,还有一个疑问。如果我在一个单独的表中有项目类型,并且我在该项目表中指定了项目类型的id以供参考,并且我希望指定条件,例如accesories为“可用”,如果可用则显示。我该怎么做?我很难理解你的问题,创建一个新的问题,你可以把你的模型的代码(只是它们之间的关系)和你想做的过滤,然后我很乐意帮助你进行查询。我已经提出了一个新问题。对不起,还有一个疑问。如果我在一个单独的表中有项目类型,并且我在该项目表中指定了项目类型的id以供参考,并且我希望指定条件,例如accesories为“可用”,如果可用则显示。我应该怎么做?我在理解你的问题、创建一个新的问题时遇到了问题,你可以在这里为你的模型(只是它们之间的关系)和你想要做的过滤添加代码,然后我将很乐意帮助你进行查询。我在中提出了一个新问题。