我有3个模型User,Club和Mcq。
在俱乐部模型中。我将俱乐部(班级)指定为 -
这是我的协会
class User < ActiveRecord::Base
has_and_belongs_to_many :clubs
end
class Club < ActiveRecord::Base
has_many :mcqs
has_and_belongs_to_many :users
end
class Mcq < ActiveRecord::Base
belongs_to :club
end
在我的学生视图(学生节目索引)中,我展示了所有俱乐部(作为主题),点击主题后我只想展示相关主题的Mcq主题。
我的俱乐部控制员是 -
class ClubsController < ApplicationController
#its show subject list
def student_show_index
@club = current_user.clubs
end
#its show topic according to subject.
def student_show_topic
@club = current_user.clubs
@mcq = @club.first.mcqs.order('created_at DESC')
end
end
所以我的问题是,当我点击主题物理时,它会显示所有第9个Mcq。和化学相同。
我只想根据主题过滤Mcq。
答案 0 :(得分:1)
您必须在要点击的主题链接中发送params
club_id
作为<%=link_to "Subject", x_path(club_id: n) %>
。例如。 params[:club_id]
然后您可以在控制器操作中将此参数作为def student_show_topic
@club = Club.find(params[:club_id])
@mcq = @club.mcqs.order('created_at DESC')
end
捕获。然后按以下步骤重写控制器操作
club_id
如果尚未添加,您可能需要在控制器中允许"osfamily": "Debian",
"sshrsakey":"Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2XXX",
"lsbmajdistrelease": "32",
"interfaces": "eth0,lo",
"physicalprocessorcount": 1,
"ec2_kernel_id": "pki-724545-724545",
这个参数。希望这会帮助你。如果有任何问题,请告诉我?