Rails 3 路线:DRY 成员

2023-11-25

我需要将以下成员方法添加到许多资源中,有没有办法将其干燥?

 member do
    get   :votes
    post  :up_vote
    post  :down_vote
  end

在我的routes.rb中

resources :news do
  resources :comments do
     member do
        get   :votes
        post  :up_vote
        post  :down_vote
      end
  end
end

resources :downloads do
  resources :whatever do
     member do
        get   :votes
        post  :up_vote
        post  :down_vote
      end
  end
end

EDIT

我实际上已将其移至模块中,如下所示:

module Votable
  module RoutingMethods
    def votable_resources
      member do
        get   "up_votes"
        get   "down_votes"
        post  "up_vote"
        post  "down_vote"
      end
    end
  end # RoutingMethods
end

现在,我的routes.rb 看起来像这样:

require 'votable'

include Votable::RoutingMethods

MyApp::Application.routes.draw do

  namespace :main, :path => "/" do
    resources :users do 
      resources :comments do
        votable_resources
      end
    end
  end

end

请参阅我的内联评论,但我希望命名路线如下所示:main_users_comments_up_votes


你不能在你的路由文件中定义一个方法吗?

def foo
  member do
   get   :votes
   post  :up_vote
   post  :down_vote
  end
end


resources :news do
 resources :comments do
   foo
 end
end

Edit

我以前没有使用过这种技术。当我做“耙路线”时,它似乎起作用了。无论如何,路由文件只是 Ruby 代码。请注意您定义的方法的名称,因为它是在 ActionDispatch::Routing::Mapper 的实例中定义的。

# routes.rb

MyApp::Application.routes.draw do
  puts self
  puts y self.methods.sort
end

# Terminal
> rake routes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 路线:DRY 成员 的相关文章

  • 如何使用 rspec 测试传递到 Rails 3 中的控制器的参数?

    我们的代码 describe GET show do it assigns the requested subcategory as subcategory do subcategory Subcategory create valid a
  • Rails 设计 edit_user_password_path

    我无法路由到项目上的 edit user password path 它只是路由到家 有人可以帮忙吗 这个问题的答案很能说明问题 显示设备编辑密码屏幕 https stackoverflow com questions 7014966 sh
  • Rails 中的命名空间模型生成 NameError:未初始化的常量

    我有一个这样的文件夹结构 app models bar foo rb connection rb foo rb connection rb是一个用于连接到另一个数据库的 抽象类 所以 class Bar Connection lt Acti
  • 拆分字符串而不删除分隔符

    我需要解析一个文件以获取单个 SQL 语句并从 Rails 控制器运行它们 我有以下代码 sql file RAILS ROOT lib evidence interface import sql sql stmts array File
  • Factory_girl、关联和 after_initialize 的问题

    我有一个这样定义的家庭类 class Family lt ActiveRecord Base after initialize initialize family belongs to user validates user presenc
  • Rails 销毁除最新的 n 条记录之外的所有记录

    如何使用 Rails 的 ActiveRecord 销毁除最新的 n 条记录之外的所有记录 我可以使用 order 和 limit 获取最新的 n 条记录 但如何销毁逆函数 这些方法中的任何一个都可以做到这一点 Fetch your lat
  • 如何用form_for设置动作?

    我在现有控制器上创建了一个新页面 我在控制器上添加了 2 个操作方法 prompt user 和 process feedback 所以我通过以下方式进入该页面 redirect to controller gt users action
  • 将 Rails 应用程序从 3.2.6 升级到 3.2.8

    我有一个使用 Rails 创建的 Rails 应用程序3 2 6 现在3 2 8已经发布了 这就是我更新应用程序所需要做的一切吗 Edit Gemfile 改变线路gem rails 3 2 6 to gem rails 3 2 8 Run
  • 如何在 test/fixtures/user.yml 中创建可用于 Devise 4 中集成测试的测试用户?

    从下面的代码中可以看到 我已经创建了一个用户users yml 包括设备的集成测试助手test helper rb 这就是为什么我能够使用sign in方法 基于设计的自述文件 https github com plataformatec
  • 如何在 Rails ActiveRecord 中的日期指定小于今天的条件

    我正在尝试找出如何提取我的集合中的所有记录的字段publish是真的并且expires比今天少 我有以下内容 但我认为小于部分不起作用 有人可以指出我正确的轨道吗 Announcement where publish true expire
  • Rails、Facebook API、Koala gem — 获取“喜欢”某个页面的用户的所有个人资料

    使用 Rails3 和 koala gem 如何检索 喜欢 FB 页面的用户的所有个人资料 例如 http facebook com DAKINE 有可能吗 作为最终结果 我需要获取一堆存储在数据库中的用户配置文件 Thanks 在 Fac
  • 不使用 RVM 时的 Cron +

    我使用的是RVM环境 RUby 版本 2 1 2 导轨 4 1 1 schedule rb every 1 minute do runner note send mail end I used whenever update crontab
  • 关于空 own_to 关联的最佳实践

    想象一下以下情况 我有一个dog模型和一个house模型 一只狗可以属于一个房子 一个房子可以有很多只狗 所以 Class Dog lt ActiveRecord Base belongs to house end Class House
  • 在社交媒体 Ruby On Rails 上共享链接时的小预览

    我正在开发一个前端位于的网站angularjs和后端ROR Same ROR API用于android app还 现在我这里有一个情况 我需要在社交媒体上分享我的网站帖子 例如facebook twitter and google plus
  • Rails 3.1 中的嵌套表单

    我在嵌套表单方面遇到问题 rails 3 1 在应该渲染 fields for 块时不渲染 fields for 块 例如 在编辑现有记录时 由于我对自己的英语不够自信 我制作了一个小示例应用程序 新行动 def new manga Man
  • Rails 教程 - User.rb 文件错误

    我正在关注 Railstutorial org 第 7 章 我正在尝试运行该应用程序 但出现以下代码错误 该错误表明我需要在文件末尾添加另一个 结束 但我已经尝试过此操作 但没有成功 错误是 Users woshea rails sampl
  • Ruby on Rails 基本概念总结

    作为 Rails 的新手 我很难找到提供 Ruby on Rails 概要的网站或参考资料 我对 MVC ActiveRecord 以及诸如此类的东西有基本的了解 但我很难理解其中的一些关系和基础知识 例如 我需要注意哪些命名约定 控制器操
  • rvm + Rails3 + gmaps4rails -acts_as_gmappable

    我是一个红宝石导轨之类的菜鸟 抱歉 如果我的问题很愚蠢 我设置了一个运行 ruby 1 8 7 p334 的 rvm 作为用户 环境 我已经为我的 应用程序 创建了一个 gemset 现在我想在页面上显示地址的地图 我四处寻找 发现了 gm
  • ActiveRecord::Fixture::FixtureError:表“books”没有名为“loves”的列

    奇怪的 Rails 问题 我有一个Book实体和用户可以Love a book 我的所有其他模型都很好并且通过了所有测试 但是在生成新模型之后Love模型和设置装置时 我突然遇到大量这些错误 ActiveRecord Fixture Fix
  • Rspec 通过 mTurk 测试实时结果

    我正在通过 Rspec 测试代码在 mTurk 上创建点击 但同时我需要测试必须从 mTurk 发回的结果 为了节省每次测试的复杂性 我使用 VCR 将 HTTP 请求记录在盒式磁带中 我该如何实施这个测试 好吧 我为此做了一些修改 我使用

随机推荐

  • JavaFX KeyEvent 返回 KeyCode.UNDEFINED

    我创建了一个简单的 JavaFX 应用程序 用于在 TextField 中接收用户的输入 我将 KeyTyped 事件从 SceneBuilder 附加到控制器 我的函数如下所示 FXML private void keyTyped Key
  • 无法以编程方式添加到 IIS 的绑定-redirection.config 权限(带有视频!)

    这是我的问题的视频摘要http screencast com t v6th4BuRLhV 我正在尝试使用以下代码以编程方式将绑定添加到 IIS public void AddBindings string sitename string h
  • 如何使用硬件配置文件从命令行创建 AVD?

    目前 我一直在通过 Android Studio UI 的 工具 gt AVD 管理器 管理 AVD 这适用于创建具有特定硬件配置文件 我在 XML 文件中 的 AVD 但我发现 AVD 经常会以某种方式损坏 AVD 旁边是 UI 中的 修
  • 如何在 SKmap 上显示自定义路线

    那么如果我们有一个本地旅行规划器 是否可以在 Skobbler 地图上显示路线 有没有什么方法可以SKMapSurfaceViewAndroid SDK上要传递一个路由来显示吗 Yes 绘制轨道元素 您可以在中看到一个示例demo项目 轨道
  • Maven 依赖排除似乎不起作用

    我有一个 Maven 项目 依赖于其他几个 Maven 项目 我在我的项目中使用 Spring 3 1 1 依赖项目有 3 0 6 我试图在部署时排除 Spring 3 0 6 因为两者都不可能 我已经在我的 POM 中添加了一个明确的排除
  • 获取相对于 android 中最顶层父级的视图位置

    要获得相对于其父级的视图 我可以使用getLeft getRight getTop and getBottom 但是如何获得相对于布局文件最顶层父级的视图呢 所以说我的前夕布局是RelativeLayout 然后说在 eve 内部我有许多嵌
  • 具有多个参数的骨干路由器

    我需要让它发挥作用 routes product showProduct product detail showProductDetail 在设置 product 路由时 即使之后设置 也永远不会调用 showProductDetail 我
  • 当在命令行上指定要打开的文件时,MFC 应用程序在 ProcessShellCommand() 中崩溃

    我需要解决的问题是如何使用MFC功能ProcessShellCommand in the InitInstance of a CWinApp当另一个应用程序启动打开文件的应用程序时 处理具有特定路径的文件打开 我有一个 MFC MDI 多文
  • Python ctypes:如何修改现有的 char* 数组

    我正在开发一个使用 libupnp C 库 的 Python 应用程序 我正在使用 CTypes 来使用这个库 这很简单 我遇到的问题是当我为读取请求注册回调函数时 该函数具有以下形式的原型 int read callback void p
  • Google 地图图标(图钉)- 如何定义颜色? [复制]

    这个问题在这里已经有答案了 是否可以更改由其 api 创建的谷歌地图上的图钉位置的颜色 或者必须使用自定义图标来做到这一点 这是谷歌地图 API v3 tnx 在广告中 您可以在初始化地图时声明图像 var overlay function
  • 在 JavaScript 中使用 Chrome 中的系统打印对话框

    我们遇到了 Chrome 的 打印预览 无法正确打印页面的问题 如果您使用 使用系统打印对话框链接 Ctrl Shift P 它可以很好地打印我们的页面 几乎与 Firefox 相同 我们的页面上有一个按钮 可以调用 window prin
  • 如何从 iPhone 上的 caf 文件访问/提取原始(无头)音频数据?

    我正在开发一个项目 需要我将原始无头 ulaw 或线性 pcm 数据发送到服务器 我正在使用 AVAudioRecorder 我可以很容易地将音频文件保存到手机上 但问题是 无论我尝试做什么 它们都会被包装在 caf 文件中或被标记为某种标
  • 如何使我的程序在 Windows Vista 和 Windows 7 中运行?

    我有一个用 Delphi 2006 编写的应用程序 它在 Windows XP 中运行良好 我使用 Inno Setup 打包应用程序 并使用 Program Files 作为默认文件夹 一些用户迁移到 Windows Vista 和 Wi
  • 编码技巧 - 交集类型和 java 枚举 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 交集类型允许您 有点 执行具有继承层次结构的枚举 您不能继承实现 但可以将其委托给辅助类 enum Foo1 implements Bar enum Foo2 implements B
  • F#:异步、任务和 PLINQ,天哪!

    当F 问世时 我将在异步 并行编程领域获得财富 一个回答这个问题很好地描述了任务 并行 LINQ 和响应式框架之间的差异 但我想知道异步工作流程到底是如何适应这种情况的 如果我错了 请纠正我 但据我了解 异步工作流程将是处理 IO 绑定操作
  • 如何在GridView中创建删除按钮?

    我在我的另一个专栏GridView称为删除 单击删除时 应删除该行 换句话说 我需要获取当前行的用户名才能将其删除 我应该使用哪个事件 行删除 行删除等 如何从当前行获取用户名 这是一篇关于DataGrid的典型用法 Enjoy
  • Horizo​​ntalScrollView 在 RTL 模式下不会向左滚动

    我有 Horizo ntalScrollViewandroid supportsRtl true 在我的应用程序中 但它不是向左滚动 而是向右滚动 我该如何解决这个问题
  • 如何在 Python 中运行单元测试时临时隐藏 stdout 或 stderr

    我有一个错误的第三方 python 模块 在导入时输出到 stdout 或 stderr 这破坏了我的单元测试的输出 如何临时重定向stdout以隐藏其输出 限制为 Python 2 5 语法 Update 我忘记说了sys stdout
  • 转换 tex 源,以便所有宏都被它们的定义替换

    是否可以看到 TeX 预处理器 的输出 i e 实际输出完成之前的中间步骤 但所有用户定义的宏都被替换 只留下 TeX 原语的子集 或者说没有这样的中间步骤 Write edef xxx Any text with any commands
  • Rails 3 路线:DRY 成员

    我需要将以下成员方法添加到许多资源中 有没有办法将其干燥 member do get votes post up vote post down vote end 在我的routes rb中 resources news do resourc