2010-11-29 5 views
1

私はレールが初めてであるので、その可能性は非常に愚かな質問のために私を実感してください。Rails:1つに割り当てられたすべてのXを見つけるY

私はモデルUserとモデルExperimentを持っており、いずれもHABTM関係でリンクされています。

表示したいときは、/experiments/1/usersと言ってみましょう。これは私が使用しているすべてのものを示し、実験ではフィルタリングされません。さて、それは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のようなものは存在しません:UsersController

、私はこのために定義undefined method find_all_by_experiment_idを」# `

のために私が取得するために使用することができますどのような現在の実験に割り当てられているユーザーは?

答えて

4

私はExperiment.find(params [:experiment_id])と思っています。

+0

パーフェクト。私はちょうど私が他の方法を行くことができるか分からなかった。 – slhck

2

まず、Experimentモデルでは、より多くのユーザーがあることを定義する必要があります。私は実験とユーザーの間に1対nまたはn対nの関係があると思います。あなたがExperiment.find(params[:experiment_id])を呼び出すことにより、実験のコントローラーで実験を検索するとき

class Expetiment < ActiveRecord::Base 
    has_many :users 
    ... 

次に、あなたが実験に関連したユーザーのリストを取得するには、そのusersメソッドを呼び出すことができます。これは、次のようになります。

関連する問題