Ruby on Rails中具有多对一关系的模型中的“显示”和“索引”路由问题

金达维德克

我觉得解决这个问题的方法实际上很简单,但我无法弄清楚。

https://github.com/kingdavidek/StuddyBuddy

我正在写一个应用程序来帮助我总结非小说类书籍。我想对这本书(或作品)有一个看法,然后与章节/节有一对多的关系,其中每个节都有自己的观点。我还希望能够创建与各节等具有多对一关系的各节。

因此,这将是一种树状结构,其中每个较小的部分都有其自己的摘要。(我基本上遵循的是Jumpstart Lab Blogger项目,但要对其进行调整以适合我自己的使用。http://tutorials.jumpstartlab.com/projects/blogger.html#blogger-2

我已经能够成功创建作品的视图并链接到各部分。我从Jumpstart教程中的注释开始讨论这一部分,其中注释与Articles具有多对一关系,并且注释显示在父文章下。我想对节/章使用相同的概念,除了我想链接到每个单独的节并在新视图中单独显示。

截面模型的路线说:

        piece_section GET    /pieces/:piece_id/sections/:id(.:format)      sections#show
        piece_sections GET    /pieces/:piece_id/sections(.:format)          sections#index

我在新页面中显示单个部分时遇到问题。

我的第一个问题是,我无法直接链接到单个部分的显示操作,而且我也不知道为什么:

这是show.html.erb中父级“ Piece”或书籍的相关部分:

<% @pieces.sections.each do |section| %>
    <li>
      <%= link_to section.name, piece_section_path(section), class: 'section_name' %>
      <!-- this middle part 'piece.name' is the psart we want the link to say, the next part is our route helper.-->
    </li>
  <% end %>
<%= link_to "delete", piece_path(@pieces), method: :delete, data: {confirm: "Really delete the article?"}

%>

父级“部件”控制器:

def show
    @pieces = Piece.find(params[:id])
end

当我尝试执行此操作时,出现以下错误:

ActionController::UrlGenerationError in Pieces#show
 Showing /home/david/Documents/Learning/StuddyBuddy/app/views/pieces/show.html.erb where line #9 raised:
 No route matches {:action=>"show", :controller=>"sections", :id=>nil, :piece_id=>#<Section id: 1, name: "xama", broader_context: "hahahah", summary: nil, key_questions_addressed: nil, thoughts: nil, piece_id: 1, created_at: "2016-07-28 10:46:05", updated_at: "2016-07-28 10:46:05">} missing required keys: [:id]
<%= link_to section.name, piece_section_path(section), class: 'section_name' %>

当我链接到节模型的索引动作时,它可以工作,并且我看到父级“ Piece”的“ show”动作非常好。

我的第二个问题是当我在观看作品时。我尝试单击一个单独的部分(即此链接:

<%= link_to section.name, piece_sections_path(section), class: 'section_name' %>

出于某种原因,我无法显示“截面”模型的截面和列。

这是节控制器:

class SectionsController < ApplicationController

def index
    @pieces = Piece.find(params[:piece_id])
    @sections = @pieces.sections.find(params[:section_id])
end

def show
    @sections = Section.all
    #@sections = Piece.sections.find(params[:id])
    #@sections = @piece.sections.all
    #@sections.piece_id = @pieces.id
end
end

这是Section模型的index.html.erb文件:

<h1> Yoyo</h1>
<p>Piece: <%= @pieces.name%></p>
<p> Section: <%= @sections.name%></p>
<p> Broader Context: <%= @sections.broader_context %></p>

这是routes.rb文件:

Rails.application.routes.draw do

      root to: 'articles#index'

      resources :pieces do
        resources :sections
      end
end

我得到的问题是这样的:

ActiveRecord::RecordNotFound in SectionsController#index
Couldn't find Section without an ID

Request
Parameters:
{"piece_id"=>"1"}

我在这里不明白的是我如何无法访问节ID?我怎么只能访问piece_id?

我一直很努力地为我提供帮助,我将不胜感激。

迪帕克·马哈卡莱(Deepak Mahakale)

根据piece_section_path需要传递参数ID链接到助手,需要两个参数

piece_section GET    /pieces/:piece_id/sections/:id(.:format)      sections#show
  • :piece_id
  • :idsection_id

将您的链接更改为:

<%= link_to section.name, piece_section_path(@pieces, section), class: 'section_name' %>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Ruby中遍历具有复杂关系的模型数组

来自分类Dev

Ruby on Rails中具有嵌套关系的查询

来自分类Dev

Ruby on Rails中具有嵌套关系的查询

来自分类Dev

Ruby on Rails模型中的<<

来自分类Dev

仅显示在Ruby on Rails中具有内容的字段

来自分类Dev

Ruby on Rails 中的路由错误

来自分类Dev

Ruby on Rails中模型的继承

来自分类Dev

Ruby on Rails教程第11章中的关系模型。

来自分类Dev

在Ruby on Rails中尊重多对多关系的分配顺序

来自分类Dev

多个Ruby on Rails模型关系

来自分类Dev

如何在Ruby on Rails中的模型之间建立一对多关系?

来自分类Dev

Ruby on Rails中的随机jQuery数据表路由问题

来自分类Dev

Ruby on Rails:“显示”帐户路由

来自分类Dev

在Postgresql中创建具有多对一关系的表

来自分类Dev

Ruby Active Record在Ruby on Rails中返回关系

来自分类Dev

Ruby on Rails和mongoid。关系

来自分类Dev

Ruby on Rails中的Mongoid一对多关系查询

来自分类Dev

Ruby on Rails 中没有匹配的路由错误

来自分类Dev

根据该关系从具有一对多和多对一关系的表中查询数据

来自分类Dev

Ruby中的Quicksort问题

来自分类Dev

文件读取并将其与多对一关系放入一个循环中Ruby

来自分类Dev

将所有模型关联在Rails上的ruby中

来自分类Dev

重构Ruby on Rails中的一些模型方法

来自分类Dev

模型,视图和控制器之间的Ruby on Rails关系

来自分类Dev

Ruby就像DSL中的Ruby

来自分类Dev

Ruby on Rails模型中的'NoMethodError:undefined method'

来自分类Dev

在Ruby on Rails中查看ActiveRecord模型字段

来自分类Dev

Ruby on Rails模型中的'NoMethodError:undefined method'

来自分类Dev

Ruby on Rails中的Mailer

Related 相关文章

热门标签

归档