Rails 3 - 嵌套资源和多态路径:可以达到两级,但在三级时中断

2023-12-22

我正在尝试做一个简单的家庭聚会网站,其中包含:“帖子”、“家庭”、“孩子”和“图片”。理想情况下,我希望路由/关系的结构如下:

  resources :posts do
    resources :pictures
  end

  resources :fams do
     resources :pictures
     resources :kids do
       resources :pictures
     end
  end

在模型中我有必要的“belongs_to" and "has_many" 之间设置的关系fams and kids. Fams, kids, and posts全部定义为"has_many :pictures, :as => :imageable" 而图片定义为:belongs_to :imageable, :polymorphic => true

当尝试做的时候link_to "Edit" and link_to "Destroy" in the pictures我遇到的各种观点_path问题。polymoric_path在两个层面上工作得很好,即posts-pictures and fams-pictures但它无法处理三级情况fams-kids-pictures。我猜它不是为处理“的两个级别而设计的”imageable“ 上方的物体picture目的。另一个问题是,在一个例子中pictures控制器必须处理“一级”资源嵌套情况,而在另一种情况下,它必须处理“两级”情况。不知道如何解决这个问题。

我尝试过的一件事是,根据 Ruby Guides 的说明,将资源嵌套的深度不要超过一层。我这样构造它们:

  resources :posts do
    resources :pictures
  end

  resources :fams do
     resources :pictures
     resources :kids
  end

  resources :kids do
     resources :pictures
  end

由于不再保留家庭与孩子的关系,这导致了另一组路径问题。我也无法让 polymorphic_path 在所有不同的环境中正确运行picture意见。

所以这是我的主要问题:有谁知道 Rails 3 示例/教程,其中嵌套资源、belongs-to/has_many 和多态关系都放在一起,特别是它不仅仅是最简单的两级关系。例子表明? (我对 Rails 相当陌生,鉴于我缺乏 Rails 历史经验,我在这些领域发现的 Rails 2 示例令人困惑。)

或者有人可以告诉我如何构建link_to EDIT and link_to DELETE为我的陈述picture的观点,以及redirect-to为我的声明create, update, and destroy我的方法pictures控制器?

Thanks!


将嵌套限制为 2 层的代码示例非常接近答案。为了避免 fams->kids 和 kids 的重复路由,您可以使用带有空白数组的 :only 选项,以便第一级 kids 不会生成路由,除非在 kids->pictures 的上下文中,如下所示:

resources :posts do
  resources :pictures
end

resources :fams do
  resources :pictures
  resources :kids
end

resources :kids, only: [] do # this will not generate kids routes
   resources :pictures
end

对于上面的代码,您可以使用以下代码来构造多态编辑 url:

polymorphic_url([fam, picture], action: :edit) # using Ruby 1.9 hash syntax
polymorphic_url([kid, picture], action: :edit)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 - 嵌套资源和多态路径:可以达到两级,但在三级时中断 的相关文章

  • Haml:如何在 HAML 中设置元素的内联样式

    这是我的代码 div class some div 它只解析style position absolute 并且不解析其他样式 我怎样才能实现这个目标 如果您发布了您正在使用的 HAML 那会很方便 但它是这样完成的 div some st
  • 如何停止 Heroku 服务器?

    我有一个托管在 heroku 上的临时服务器 我只想将其关闭 但不想破坏该应用程序 我该怎么做 我是否有类似 heroku stop 之类的命令 例如 heroku restart 来重新启动 OR 有没有办法让服务器在超过 750 小时免
  • Rails:统计用户未读通知的数量

    我目前有一个处理用户活动通知系统的活动模型 当发生某些操作 例如创建新文章 时 活动观察者会创建一个新活动 现在我想记录当前用户尚未看到的这些活动通知中有多少 类似于 facebook 上的通知宝石 每次用户单击通知链接时 数字应重置为 0
  • rvm + Rails3 + gmaps4rails -acts_as_gmappable

    我是一个红宝石导轨之类的菜鸟 抱歉 如果我的问题很愚蠢 我设置了一个运行 ruby 1 8 7 p334 的 rvm 作为用户 环境 我已经为我的 应用程序 创建了一个 gemset 现在我想在页面上显示地址的地图 我四处寻找 发现了 gm
  • 从邮件程序访问助手?

    我试图从 Rails 3 邮件程序访问帮助程序方法 以便访问会话的当前用户 我将 helper application 放在我的邮件程序类中 这似乎可以工作 但其中定义的方法对我的邮件程序不可用 我收到未定义的错误 有谁知道这应该如何运作
  • Rails3 中带有块的 link_to 的语法,其中 :remote=>true 并包括 :class 和 :id

    看在上帝的份上 我已经为此绞尽脑汁好几个小时了 使用rails3 rc 1 9 2 我正在尝试创建一个 link to 来提交一个ajax请求 其中包含参数 类和id 并且需要一个块 以便我可以在名称周围插入一个span标签 文档的帮助绝对
  • Ruby on Rails 中的渲染验证错误

    在模型中说Task 我有以下验证 validates presence of subject project user status 如何使用其他控制器呈现这些验证的错误消息 在我使用的 CustomController 内部 Task c
  • Imperavi Redactor 内容未复制到隐藏文本区域

    我正在尝试使用因佩拉维编辑器 http imperavi com redactor 在这里控制我的富文本编辑 div class control group div class controls div div document ready
  • Rails 路由:仅具有自定义操作的资源

    我有一个NotificationsController 其中我只有动作clear 我想通过执行 POST notifications clear 来访问此操作 所以我在我的路由器中写了这个 resources notifications o
  • 为什么我不能让 rake db:migrate 为 ruby​​.railstutorial.org 工作

    我决定完成教程 创建新应用程序并添加新应用程序后user string email string然后执行rake db migrate在应用程序目录中 我得到以下输出 rake aborted undefined method task f
  • 为什么“jQuery-Rails”经常位于资产组之外

    为什么我经常看到gem jquery rails之外的 assets group group assets do gem sass rails gt 3 1 0 gem coffee rails gt 3 1 0 gem uglifier
  • Rails - 动态构建深度嵌套对象(Cocoon /nested_form)

    我目前有一个具有深层嵌套的复杂形式 并且我正在使用Cocoon https github com nathanvda cocoongem 根据需要动态添加部分 例如 如果用户想要在销售表单中添加另一辆车 代码如下所示 div class a
  • 如何设置“attr_accessible”以便不允许使用 Ruby on Rails 访问模型的任何字段?

    如果在模型文件中我只有以下代码 class Users lt ActiveRecord Base end 这意味着什么 与模型相关的所有属性是否均可访问 我如何设置 attr accessible 以便not允许访问any领域的for那个型
  • Rails:关于产量

    我在a中看到了一些代码导轨 v2 3 app In layout car general html erb 这个视图是由 cars controller 中的方法调用的 我看到了代码 var some car new Object 有两个问
  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • 更改迁移中的自动​​增量值(PostgreSQL 和 SQLite3)

    我有一个托管在 Heroku 上的项目 想要更改表的自动增量起始值 我在本地使用 SQLite3 Heroku 使用 PostgreSQL 这是我在迁移中所拥有的 class CreateMytable lt ActiveRecord Mi
  • Rails 3 Mechanize - SocketError:getaddrinfo:主机或名称未知

    我正在使用 mechanize 但出现此错误 有人可以帮帮我吗 我已将元刷新设置为 true 错误日志 SocketError getaddrinfo Host or name not known form C Ruby192 lib ru
  • Rails 3.1 和图像资源

    我已将管理主题的所有图像放入名为 admin 的文件夹内的资产文件夹中 然后我像平常一样链接到它 Ruby image tag admin file jpg CSS logo background url assets images adm
  • 主页的 RefineryCMS 路线不起作用

    刚刚开始使用RefineryCMS 抱歉新手问题 它在本地运行良好 并幸运地部署在 Heroku Cedar 堆栈上 创建了一个名为 主页 的页面 pages home 响应良好 路线 rb root to gt pages home 并在
  • Rails - 用于集合集的单选按钮

    我有以下输出选择框 br 替代输出单选按钮的 Rails 方法是什么 对于单选按钮 您必须自行迭代并输出每个单选按钮及其标签 事实上这真的很容易

随机推荐

  • 在 iOS 中的 Storyboard 中使用模糊背景

    我在 iOS 8 上使用 Swift 我正在向 UiViewController 添加一个 子 视图 这个子视图应该包含一些 UiLabel 其中包含一些信息 我希望子视图有一个模糊的背景 就像iOS的通知中心一样 我知道使用 UIEffe
  • 在XBee ZigBee中,如何从协调器获取所有终端设备的RSSI

    获取每个终端设备的 RSSI 的正确方法是什么 场景 在 XBee 系列 2 无线电模块上使用 ZigBee 固件 API 模式 我有一个协调器和多个终端设备 每隔几秒钟 每个终端设备都会向协调器发送一个数据包 其中包含传感器信息 例如温度
  • Android 中主机卡模拟的编辑功能

    我目前正在为我的大学课程开发一个项目 其中我希望编辑 Android 的 HCE 功能的功能 以允许我在模拟卡时设置自己的 UID 现在 我已经下载了 AOSP 源代码 并构建了一个无需编辑代码的自定义映像 并将其安装到我的 Nexus 7
  • 抑制 python 警告

    当我在 for 循环中迭代时 我不断收到相同的警告 我想抑制该警告 警告内容如下 C Users Nick Alexander AppData Local Programs Python Python37 lib site packages
  • 如何摆脱 InvalidClassException SerialVersionUID?

    我在数据库中保存了一个 java 对象 几天后我更改了我的 jre 版本 现在 当我尝试读取同一个对象时 我收到以下异常 Exception in thread main java io InvalidClassException Seri
  • Dapper 示例代码的说明

    我正在尝试理解 Dapper 似乎缺少一些非常基本的东西 有人可以解释一下从 Google 代码上的 Dapper 主页获取的以下代码 并解释为什么没有 From 子句 以及 Query 方法的第二个参数 动态 传递了一个匿名类型 我认为这
  • 使用已知函数 numpy 进行曲线拟合

    我有一个 x 和 y 一维 numpy 数组 我想用已知函数重现 y 以获得 beta 这是我正在使用的代码 import numpy as np import matplotlib pyplot as plt from scipy opt
  • diff 2个大型数据库表

    给定 2 个大表 想象一下数亿行 每个表都有一个字符串列 如何获得差异 查看开源 Percona 工具包 具体来说 pt 表同步 http www percona com doc percona toolkit pt table sync
  • 我了解 Perl 5。学习 Perl 6 比转向 Python 有什么优势? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Facebook iOS SDK - 移动应用程序安装跟踪不起作用

    我在我的应用程序中使用 Facebook SDK 版本 4 5 1 APP ID URL 方案 应用程序显示名称等已正确合并到 info plist 中 我们的应用程序内有身份验证和共享功能 所有这些功能都按预期完美运行 对于事件跟踪 我们
  • jQuery UI Datepicker 和 Google Chrome 不工作

    我在使用 jQueryUI Datepicker 和 Google Chrome 时遇到一些问题 我的日期选择器在 IE8 Firefox 和 Safari 上按预期工作 问题是在 Chrome 中单击日期选择器连接的文本框时 它给了我一个
  • 如何将两个windows vc静态库合并为一个

    我有两个静态库a lib and b lib C语言的 它是使用VC6 Visual studio 6 0 生成的 我想将这两个库合并为一个静态库c lib 如何在 CLI 模式下执行此操作 我见过合并 nix 静态库 https stac
  • Firebase Storage 和 Dropzone.js 按下按钮时上传多个图像

    本质上我想做的是允许人们添加文件 然后按下按钮将图像上传到 Firebase 存储 我决定使用 Dropzone js 因为该包编写良好且可自定义 但我仍然感到困惑 我有这段代码 允许我将多个图像上传到 Firebase 但是 我希望它适合
  • 如果两个指针都转换为整数类型,则比较两个指针是否具有 < 未定义行为?

    假设我有这段代码 可以根据内存块的位置按特定顺序将一个内存块复制到另一个内存块 void my memmove void dest const void src size t len const unsigned char s const
  • java.lang.NoClassDefFoundError:无法初始化类 javax.imageio.ImageIO jboss EAP 6

    我们正在使用 JBoss EAP 6 直到生产环境一切正常 但是在生产环境中部署后 我们收到以下错误 java lang NoClassDefFoundError Could not initialize class javax image
  • OkHTTPClient将cookie传递给Webview

    我通过 OKHttpClient 帖子以用户身份登录 我想与 webview 共享 cookie 使用 OkHttp 3 0 您可以使用类似于与 HttpURLConnection 共享的方法 通过创建使用 webkit cookie 存储
  • 如何在 Xamarin 中使用 Activity 属性 android:showForAllUsers?

    该属性未在 Xamarin 中实现 这意味着我无法将其声明为我的 Activity 类的属性 如下所示 Activity Label string app name Theme style MainTheme StopAlarm Launc
  • 如何启用和禁用组件?

    如何从 java 代码的清单中启用然后禁用组件 采用 Pawan 方法进行更通用的实施 public static void setComponentState Context context String packageName Stri
  • 缩放 Phonegap 应用程序以适应不同的 Android 屏幕尺寸/密度?

    我有一个 Phonegap 应用程序 旨在在 Android 手机和平板电脑上运行 文本和图像的比例在手机上看起来不错 但在 7 英寸平板电脑上看起来太小 有没有办法为基于 Phonegap 的应用程序设置不同屏幕尺寸 密度的比例 对于本机
  • Rails 3 - 嵌套资源和多态路径:可以达到两级,但在三级时中断

    我正在尝试做一个简单的家庭聚会网站 其中包含 帖子 家庭 孩子 和 图片 理想情况下 我希望路由 关系的结构如下 resources posts do resources pictures end resources fams do res