質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

2602閲覧

Railsで中間テーブルのカラム順に並べ替えたい

ihatov08

総合スコア8

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2016/05/17 10:18

###前提・実現したいこと
以下のような関連付けをしているモデルがあります。
Plan=>Course=>Lesson
deviseのモデルUser
中間テーブル

  • course_plan
  • bookmark

course_planモデルにpositonカラムがあります。
bookmarkのindexページでpositionカラム順にbookmarkを並べ替えたいのですが、どのようにすればよいでしょうか?

ruby

1class Plan 2 has_many :users 3 4 has_many :course_plans, -> { order(position: :asc) }, dependent: :destroy 5 6 has_many :courses, -> { includes(:course_plans).order('course_plans.position ASC') }, through: :course_plans 7 8 9class CoursePlan 10 belongs_to :course 11 belongs_to :plan 12 13 14class Course < ActiveRecord::Base 15 has_many :lessons, -> { order(chapter: :asc) }, dependent: :destroy 16 accepts_nested_attributes_for :lessons 17 has_many :course_plans 18 has_many :plans, through: :course_plans 19 20 21class Lesson < ActiveRecord::Base 22 belongs_to :course 23 has_many :bookmarks 24 has_many :bookmarked_users, through: :bookmarks, source: :user 25 26 27class Bookmark < ActiveRecord::Base 28 belongs_to :user 29 belongs_to :lesson

###試したこと
現在は苦肉の策で
コースIDが若い順、同一コースの場合はレッスンIDが若い方を上にしています。

ruby

1 def bookmarks 2 @bookmarks = Bookmark.where(user_id: current_user.id).sort_bookmarks 3 @bookmarks = Bookmark.joins(lesson: [:course]).order("course_id").order("chapter").where(user_id: current_user.id) 4 end

joinsincludesしてみましたが、うまくいきませんでした。
どなたか教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問