Ruby on Railsを初めて使用し、正しいクエリを作成しようとしています。しかし、ドキュメンテーションとサンプルを読んだ後、私はそれから適切なクエリを得ることはできません。だから私は誰かが正しい方向に私を指すことができることを願っています。Ruby on Rails 4で現在のユーザに基づいて選択するクエリ
状況 私はトレーナーがセットアップ研修は、及び(日付はスリルと呼ばれます)、いくつかの日にこれらの研修を与えることができ、他のユーザーがこれらのスリルのために購読することができ、アプリケーションを構築します。それは以下の構造を持っています:models and needed table。
私のモデルのコードは次のようになります。インデックスページで
class User
has_many :trainings
has_many :thrills, through: :reservations
has_many :reservations
class Training
belongs_to :user
has_many :reservations
has_many :thrills
has_many :users, through: :thrills
class Thrill
belongs_to :training
has_many :reservations
has_many :users, through: :reservations
class Reservation
belongs_to :user
belongs_to :thrill
has_one :training, through: :thrill
- 私は、現在のユーザが日付順にセットアップを持っているすべてのスリルを示したいと思います。私は、アップロードされた画像のテーブルが表示され、そのテーブルからすべてのスリルを選択できると思います。current_user.id = user_id
- 検索ページでは、スリルがあるトレーニングのみを表示したいそれが一杯になっていない(したがって、私は予約のカウントを作りたい)
私はこのような何かを考えていた:
@thrills = Thrill.joins(:trainings).where('? = trainings.user_id, current_user.id')
または
@thrills = Thrill.where('? = @thrill.training.user_id', current_user.id).all
または
@thrills = Thrill.joins(:trainings).where(trainings: { user_id: current_user.id })
残念ながら、いずれも機能しません。誰かがこれを解決するためのアイデアを持っていますか?前もって感謝します!
あなたは質問に、あなたのモデルのコードを投稿してくださいことはできますか?その後、私は2番目のステップであなたを助けることができました.. – siegy22
ちょうど追加されました、ありがとう –
あなたの質問の2番目の部分については、 "スリル"が予約されているとあなたのロジックが何であるかを誰も推測できないので、 – neongrau