私は、インデックスとショーを持つアカデミーコントローラを持っています。Railsルーティング別の表示方法
インデックスにはコースが表示され、ショーにはコースのカテゴリが表示されます。 show_episodesメソッドをコントローラに追加して、show_episodes.html.erbで呼び出すと、そのコースとそのカテゴリに関連するエピソードが表示されます。
URLのパスがアカデミー(インデックス)/ course_id(コースのセクションを表示)/ category_id(URLのパスを示す各セクションのエピソード) これは私のルートは
resources :academy, :only => %w(index show)
私のコントローラ
class AcademyController < ApplicationController
before_action :authenticate_users_user!
def index
@courses = Course.active
.select("sum(progress)/count(1) AS progress, courses.name, courses.id, courses.course_episodes_count")
.joins("left outer join course_categories on course_categories.course_id = courses.id")
.joins("left outer join course_episodes on course_episodes.course_category_id = course_categories.id")
.joins("left outer join user_course_progresses on course_episodes.id = user_course_progresses.course_episode_id")
.group("courses.name, courses.id, courses.course_episodes_count")
end
def show
@course_categories = CourseCategory.active
.select("sum(progress)/count(1) AS progress, course_categories.order, course_categories.name, course_categories.id, course_episodes_count, img_url")
.joins("left outer join course_episodes on course_categories.id = course_episodes.course_category_id")
.joins("left outer join user_course_progresses on course_episodes.id = user_course_progresses.course_episode_id")
.group("course_categories.order, course_categories.name, course_categories.id, course_episodes_count, img_url")
.order(order: :asc)
end
def show_episodes
course_category_id = params[:id]
@course_episodes = CourseEpisode.active
.select("p.progress, course_episodes.*")
.joins("LEFT OUTER JOIN user_course_progresses p on p.course_episode_id = course_episodes.id")
.where("course_categories_id = ? and p.user_id = ? and p.course_episode_id = course_episodes.id", course_category_id, current_users_user.id)
.order(order: :asc)
@course_categories = CourseCategory.active
.select("name, courses_id")
.where("id = ? ", course_category_id)
.first
end
end
はあなたに感謝のように見えるものです!
感謝。私のHTMLファイルで、私はこのようなリンクを追加できますか? :正しいを得るためにあなたのコンソール上ビューエピソード <% end %> – quincosa
実行 'すくいroutes' <%=のlink_to show_episodes_academy、クラス%やる "BTN-主要BTN">をルートですが、 'show_episodes_academy_path(@academy)'はそれを行うべきです – alexunger