Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 通过Rails关联进行查询_Ruby_Ruby On Rails 4_Associations - Fatal编程技术网

Ruby 通过Rails关联进行查询

Ruby 通过Rails关联进行查询,ruby,ruby-on-rails-4,associations,Ruby,Ruby On Rails 4,Associations,我有两个模型:商店和用户。用户属于商店,一个商店有很多用户。用户和店铺分别创建,然后用户添加一个店铺,将其店铺id更改为@Shop.id 我需要@shop.users查询所有属于商店的用户。但我不知道如何做到这一点。当前,唯一的连接是关联,当用户使用此按钮选择店铺时,@user.shop_id将更新为正确的店铺: 视图: 以下是ShopsController客户中的查询 def customers @shop = Shop.find(params[:id]) @customers = S

我有两个模型:商店和用户。用户属于商店,一个商店有很多用户。用户和店铺分别创建,然后用户添加一个店铺,将其店铺id更改为@Shop.id

我需要@shop.users查询所有属于商店的用户。但我不知道如何做到这一点。当前,唯一的连接是关联,当用户使用此按钮选择店铺时,@user.shop_id将更新为正确的店铺:

视图:

以下是ShopsController客户中的查询

def customers
  @shop = Shop.find(params[:id])
  @customers = Shop.users
end
此查询为我提供了nil:nilclass的错误未定义方法“users”,因此在商店中找不到用户


当用户选择店铺时,我如何创建正确的关联,而不仅仅是更新店铺id参数?

您想要的是特定店铺的用户,而不是抽象店铺模型的关系。因此,在您的示例@shop中,您必须调用shop实例上的.users

你的问题不是很清楚,但我希望这能有所帮助。还要注意,在问题文本中,您实际上询问了@shop.users,但您的代码示例为shop.users:。我认为您实际上有两个问题:如何访问商店的所有用户如何访问关联实例?以及如何将一个对象分配给一个属于关系

请注意,customers方法声明可以找到具有该id的店铺,否则将抛出错误

要设置店铺,可以使用ActiveRecord,如下所示:

@shop = Shop.find(params[:shop_id])
@user.shop = @shop

你问什么并不清楚。你能告诉我们目前的方法有什么问题,什么不起作用,你到底想做什么。。。您是否面临任何错误?编辑以包含错误。嗯,错误非常明确。。。是否确定已分配参数[:id]并与现有店铺匹配?在客户操作中:@customers=@shop.usersHaha@TheCha͢mp。。。为什么我错过了><但是,错误应该是Shop类的未定义方法用户,对吗?
def customers
  @shop = Shop.find(params[:id])
  @customers = Shop.users
end
def customers
    @shop = Shop.find(params[:id])
    @customers = @shop.users
end
@shop = Shop.find(params[:shop_id])
@user.shop = @shop