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

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

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

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

受付中

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

ihatov08
ihatov08

総合スコア8

Ruby on Rails

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

0回答

0評価

0クリップ

2193閲覧

投稿2016/05/17 10:18

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

  • course_plan
  • bookmark

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

ruby

class Plan has_many :users has_many :course_plans, -> { order(position: :asc) }, dependent: :destroy has_many :courses, -> { includes(:course_plans).order('course_plans.position ASC') }, through: :course_plans class CoursePlan belongs_to :course belongs_to :plan class Course < ActiveRecord::Base has_many :lessons, -> { order(chapter: :asc) }, dependent: :destroy accepts_nested_attributes_for :lessons has_many :course_plans has_many :plans, through: :course_plans class Lesson < ActiveRecord::Base belongs_to :course has_many :bookmarks has_many :bookmarked_users, through: :bookmarks, source: :user class Bookmark < ActiveRecord::Base belongs_to :user belongs_to :lesson

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

ruby

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

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails

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