我是铁道新手,所以请原谅我这个可能非常愚蠢的问题。
我有一个模型用户和一个模型实验,都是通过HABTM关系链接的。
当我想要显示时,让我们说:/experiments/1/users
,它显示我所有的用途,而不是通过实验过滤。好的,那是因为UsersController
。
在UsersController
中,我因此定义:
# GET /users
# GET /experiment/:experiment_id/users
def index
if (params[:experiment_id] == nil)
@users = User.all
else
@users = # HOW DO I FIND THE USERS FOR THE EXP?
end
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
我想过滤用户,但User.find_all_by_experiment_id
之类的内容不存在:undefined method
find_all_by_experiment_id'代表#`
我可以使用哪些方法来获取分配给当前实验的用户?
答案 0 :(得分:4)
我认为Experiment.find(params [:experiment_id])。用户应该工作。
答案 1 :(得分:2)
首先,您应该在实验模型中定义它有更多用户。我想在实验和用户之间存在1对n或n对n的关系。这看起来像这样:
class Expetiment < ActiveRecord::Base
has_many :users
...
然后,当您通过调用Experiment.find(params[:experiment_id])
在实验控制器中查找实验时,您可以调用其users
方法来获取与实验相关的用户列表。