ruby-on-rails – 显示所有记录而不是实例记录的嵌套路由
发布时间:2020-12-17 07:09:58 所属栏目:百科 来源:网络整理
导读:这些是相关的模型: class Repository ActiveRecord::Base has_many :quizzes,:dependent = :destroy has_one :key,:dependent = :destroy accepts_nested_attributes_for :key,:quizzesendclass Quiz ActiveRecord::Base belongs_to :repository has_many :
这些是相关的模型:
class Repository < ActiveRecord::Base has_many :quizzes,:dependent => :destroy has_one :key,:dependent => :destroy accepts_nested_attributes_for :key,:quizzes end class Quiz < ActiveRecord::Base belongs_to :repository has_many :topics,:dependent => :destroy accepts_nested_attributes_for :topics end 这是我的路线: GqAPI::Application.routes.draw do resources :repositories do resources :quizzes end resources :quizzes resources :keys resources :topics resources :questions end 当我尝试这个配置时,我得到数据库中的所有测验,而不仅仅是当我尝试进入/ repositories / 1 /测验时我指定的ID的测验 有什么想法吗?非常感谢你的时间 解决方法
在QuizzesController的索引操作中,您需要添加:
def index @repository = Repository.find(params[:repository_id]) @quizzes = @repository.quizzes end @repository行将根据URL中的参数找到存储库.然后它会找到基于该存储库的所有测验. 然后在您的视图中,您可以在显示它们时循环浏览所有这些测验. 注意 您目前设置路线的方式,您可以在/测验中访问页面,但听起来您似乎没有这个愿望.如果是这种情况,您可以删除资源:来自routes.rb的测验(仅限第二个,而不是嵌套的测验). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |