协会问题

时间:2015-09-21 08:08:22

标签: ruby ruby-on-rails-4

我有3个模型User,Club和Mcq。

在俱乐部模型中。我将俱乐部(班级)指定为 -

  1. 9-物理
  2. 9化学
  3. 10物理
  4. 10化学...
  5. 这是我的协会

    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。

1 个答案:

答案 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", 这个参数。希望这会帮助你。如果有任何问题,请告诉我?