Rails:指定没有值的参数给 link_to

2023-12-14

假设路线

map.resources :articles

你怎么得到这个

/articles?most_popular

using link_to method?

尝试了以下方法:

link_to articles_path(:most_popular) # exception
link_to articles_path(:most_popular => nil) # /articles
link_to articles_path(:most_popular => true) # /articles?most_popular=true

注意:我正在使用继承资源 with has_scope


如果您不向参数添加值,您将不遵守 W3C 标准,该标准要求 params 部分具有以下形式field=value.

我建议您向文章控制器添加一个新的 :most_popular 操作。

在你的routes.rb上:

map.resources :articles, :collection => {:most_popular=>:get}

在您的控制器上:

class ArticlesController < ApplicationController
...
def most_popular
  @articles = ...
end

就您的看法:

link_to most_popular_articles_path() # /articles/most_popular

这将是 HTML 兼容的,您的 url 看起来几乎相同(将 1 更改为 1 /),并且您的控制器将被简化(您将拥有与索引分离的 most_popular 操作)。

Regards!

更新(2017):W3C 标准似乎没有强制要求field=value语法(或者不再强制要求它)。然而,一些服务器被记录为“阻塞”不符合此语法的查询。看url 查询参数没有值是否有效?了解详情。

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

Rails:指定没有值的参数给 link_to 的相关文章

随机推荐

  • 无法在android中使用videoview播放rtsp

    我已经使用 VLC 设置了 RTSP 服务器 然后我写一个应用程序 这是我的代码 package com ashley work import android os Bundle import android app Activity im
  • 如何获得像“http://stackoverflow.com/questions/1074/asp-mvc”这样的漂亮 URL

    谁能帮我 我正在 ASP NET MVC 中做一些测试 我想将漂亮的 URL 实现为 stackoverflow com 路由系统 例如 stackoverflow com questions 1074 asp mvc 域名 com id
  • 如何将linux命令CURL转换为PHP

    我想将这个linux命令控制台转换为PHP代码 通过curl发送数据 curl X POST d data street 1 link Thanks fields 2 fields as string key value key2 valu
  • 如何向IdentityServer DI框架注册ApplicationUserManager?

    我正在使用 IdentityServer3 进行身份验证 所有用户都存储在 Sql DB 中 所以我也在使用Microsoft AspNet Identity实际身份验证的框架 出于同样的目的 我创建了自己的框架ApplicationUse
  • 使用 MD5-SHA1 哈希算法进行 RSA 签名

    据我所知 TLS 1 1 要求 CertificateVerify 消息的内容是使用两种哈希算法 MD5 和 SHA1 串联的数字签名值 在 NET 中使用 RSACryptoServiceProvider 可以做到这一点吗 这不起作用 u
  • 如何将文本段设为只读?

    我知道文本段是只读段 尝试写入它会导致 总线错误 我很好奇这个段是如何变成只读的 由于物理内存不是只读的 因此必须在分页期间完成此操作 内存的每个页面是否都有一个位用于为文本段设置的只读页面 ELF 文件 Unix 可执行文件或共享对象 有
  • 将双精度数限制为小数点后 3 位

    这就是我想要实现的目标 如果双精度数的小数位数超过 3 位 我想截断第三位以外的所有小数位 不要圆形 Eg 12 878999 gt 12 878 如果 double 的小数位数少于 3 位 则保持不变 Eg 125 gt 125 89 2
  • _start 可以是拇指函数吗?

    请帮助我使用arm926ejs cpu 的gnu 汇编器 我尝试构建一个简单的程序 test S global start start mov r0 2 bx lr 并成功构建它 arm none linux gnueabi as mthu
  • Play Framework [2.4.x] 如何在子模块的路由文件中寻址公共资源

    上一个问题可以作为当前讨论的 子模块 含义的基线 Play Framework 2 4 x 使用子模块 如果您了解 Play 子模块 那么在给定上下文的情况下 如何输入子模块上的路由条目以公开 公共 文件夹中的资源 每当我尝试创建基本条目
  • 确保 MySQL 连接在 PHP 函数中正常工作

    我有以下形式的代码 这种 类型 代码不起作用 因为 doSomething 没有与数据库的连接 谁能解释为什么不呢 我创建 con 连接before我调用 doSomething 那么为什么该函数表现得好像没有连接一样呢 有什么方法可以解决
  • 在不使用插件的情况下向 WooCommerce 订单号添加后缀和前缀

    我想在不使用插件的情况下向 Woo Commerce 订单号添加后缀和前缀 我尝试使用这个不起作用的钩子 add filter woocommerce order number my woocommerce order number 1 2
  • 如何获取物理存储设备列表?

    我想获取物理存储设备的列表 我见过一些代码 但实际上是循环的 并且执行类似暴力的操作 我想知道获取物理存储磁盘列表的一般方法是什么 我发现了CreateFile 但我不明白如何正确使用它 我需要一个非 wmi 解决方案 如果不查询注册表就更
  • `UIDocument` 的 `save(to:for:completionHandler:)` 崩溃

    我在运行 iOS 9 的每个 32 位设备 模拟器上都会崩溃save to for completionHandler Xcode 8 2 基础 SDK 是 10 2 目标是9 0 标准架构 Swift 3 适用于开发和发布版本 示例项目
  • javascript 错误 [对象 HTMLInputElement][对象 HTMLInputElement]

    我正在练习 java 脚本代码 但在实现此代码时遇到问题 Enter A
  • 检查字典是否是另一个字典的子集的递归函数

    我想递归地检查一本字典是否是另一本字典的子集 我们假设两个字典都有内置类型作为项目 我看到已经有一个很旧的线程了Python 检查一个字典是否是另一个较大字典的子集试图解决类似但不完全是的问题 因为那里的答案都不符合我的目的 所以我决定发布
  • Pandas 中的条件运行总和仅适用于所有先前的值

    假设我有以下数据框 df pd DataFrame Event A B A A B C B B A C Date 2019 01 01 2019 02 01 2019 03 01 2019 03 01 2019 02 15 2019 03
  • iOS 验证数字签名

    在我的应用程序中 我有一个公钥 表示为字符串 纯消息和数字签名 表示为 base64 编码字符串 使用 SHA256 进行哈希处理并使用 RSA 进行加密 现在 我需要验证数字签名 我试图执行以下操作 create SecKeyRef fr
  • 什么是 Setter 和 Getter?

    我对 Objective C 的 Setter 和 Getters 并没有真正的了解 有人可以为初学者提供一个好的指南吗 我注意到 当尝试访问另一个类中的变量时 这会发挥作用 我现在正在尝试这样做 我有两个类 比如说 A 和 B 我在 A
  • “${foo.bar}”和“#{foo.bar}”有什么区别?

    我可以通过表达式语言 EL 在 jsp 文件中使用 Java Bean 中的对象 因此我可以通过输入 foo bar 来获取我的值 但我也可以使用 foo bar 任何人都可以解释其中的差异或提供有意义信息的链接吗 这包含在JSP 2 1
  • Rails:指定没有值的参数给 link_to

    假设路线 map resources articles 你怎么得到这个 articles most popular using link to method 尝试了以下方法 link to articles path most popula