rails中link_to与button_to的一个功能差异

页面中本来设计一个按钮,功能是当按下时跳转到index方法,然后实现一段功能.关键是其中需要传递一个参数show_all,其值为true.
index方法中通过判断是否含有该参数来实现不同的逻辑,类似如下:

if params[:show_all]
      @products = Product.all
    else
      @products = Product.where("locale == ?",I18n.locale.to_s)
    end

按钮通过如下代码生成:

<%= button_to('show all products',store_index_path(show_all:true),method: :get)%>

实际生成的html代码如下:

<form class="button_to" method="get" action="/cn/store/index?show_all=true"><input type="submit" value="show all products" /></form>

可气的是该段代码的show_all参数死活传不过去,在rails s控制台中看到的总是/cn/store/index后面没有?show_all=true这段!当把button_to的method参数改为:post后,show_all参数可以正常传递到后台了,但我不想用post方式哦!
于是决定先用link_to试一下:

<%= link_to(t(".show_all_html"),store_index_path(show_all:true),class:'locale')%>

生成的代码如下:

<a class="locale" href="/cn/store/index?show_all=true">显示所有商品</a>

注意链接url部分和button_to生成的是一模一样的!点击该链接后正确传递了参数.
难道必须用link_to而不能用button_to的:get方式传递参数吗?答案是否定的喽!一番搜索后,查到button_to使用如下方法实现:

<%= button_to('show all products',store_index_path,method: :get,params:{show_all:true})%>
时间: 2024-07-28 16:21:55

rails中link_to与button_to的一个功能差异的相关文章

android中集中html5,怎样实现文件下载功能,我现在有一个超链接

问题描述 android中集中html5,怎样实现文件下载功能,我现在有一个超链接 <a href="http://xxxxxxx/group1/M00/00/08/Ci09DVSb9n6AH76IAAX4AIw6xuk01.docx?attname=基于ANT的增量代码检查.docx&attachid=942'" download="基于ANT的增量代码检查.docx" class="graybtn">下载</a>

ios 电话-iOS 一个项目中调用了系统的打电话功能但无法实现点击按钮挂断电话

问题描述 iOS 一个项目中调用了系统的打电话功能但无法实现点击按钮挂断电话 调用打电话代码: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",phone]]]; 然后怎么在项目中实现点击按钮挂断电话...... 解决方案 http://www.cocoachina.com/bbs/read.php?tid=458505 解决方案二:

ae 界面开发 图像显示-c# AE开发界面中,老师让实现一个点击按钮就可以直接显示TIFF等图像的功能

问题描述 c# AE开发界面中,老师让实现一个点击按钮就可以直接显示TIFF等图像的功能 RT,现在老师让做一个界面,他想实现点击每个按钮就会在axMapcontrol中直接显示TIFF,Shapfile等图像数据,而不是传统的需要调用系统窗口自己选择路径那种.本人初涉开发,求该功能实现的可用代码谢谢各位了!来个教学也行! 解决方案 http://blog.csdn.net/devillyd/article/details/5704359

用java swing写一个office excel中的表格设置模块,功能可以不实现

问题描述 用javaswing写一个officeexcel中的表格设置模块,功能可以不实现

java中实现一个功能,是用一个函数中调用多个函数效率高和还是一个函数就搞定的效率高

问题描述 最近在思考一个问题,假如我想实现一个功能,这个功能一个函数就可以搞定,但就是写完之后这个函数变的很长了,然后我想着可以把其中一块抽出来,分成多个函数,比较清晰,以后维护的时候也好维护,但是这个会不会对效率产生影响呢? 解决方案 对于那点性能来说,可以忽略的:对于程序员来说吗,还是简单.易读.高可维护性,复用性 这些才是重要的.可以衡量一下,如果一个程序完全由一个函数来执行,与 一个结构清晰,容易阅读的代码相比 是浪费一点点的性能来达到代码容易维护,还是要那一点点的性能呢?我的答案是 要

Ruby on Rails中MVC结构的数据传递解析_ruby专题

如果读者已经开发过基于 Rails 的应用,但对其 MVC 间的数据传递还有诸多困惑,那么恭喜您,本文正是要总结梳理 Rails 数据传递的方法和技巧.Ruby on Rails 3(以下统称为 Rails 3)是当前的主要发布版本,本文所述及的内容和代码都基于此版本.Rails 3 简介 Ruby on Rails 是一个 Ruby 实现.采用 MVC 模式的开源 Web 应用开发框架,能够提供 Web 应用的全套解决方案.它的"习惯约定优于配置"的设计哲理,使得 Web 开发人员能

利用Rails中Rake管理MySQL数据库

作为一名优秀的程序员,除了编写大量的程序外,创建大量的数据库也是在所难免的.在过去的几年中,笔者曾经创建和管理了大量的MySQL数据库,在这个过程中曾使用各种工具来进行管理,以便使它的过程更简单,例如首选的图形化管理工具PHPMyAdmin,以及基于命令行的MySQL clent,它们都非常好用.但是,在笔者内心身处始终觉得,我们是一名程序员,而不是一名数据库管理员,总感觉编程和数据库管理之间有些跨越.为什么不用与编程相同的方式来管理数据库结构呢?自从开始使用Rails,终于找到了答案.通过Ra

详解Ruby on Rails中的Cucumber使用_ruby专题

    用 @wip (工作进行中)标签标记你未完成的场景.这些场景不纳入考虑,且不标记为测试失败.当完成一个未完成场景且功能测试通过时,为了把此场景加至测试套件里,应该移除 @wip 标签.     配置你的缺省配置文件,排除掉标记为 @javascript 的场景.它们使用浏览器来测试,推荐停用它们来增加一般场景的执行速度.     替标记著 @javascript 的场景配置另一个配置文件.         配置文件可在 cucumber.yml 文件里配置. # 配置文件的定义: pro

excel通过VLOOKUP函数从一个表中取数到另一个表

  Excel表格处理数据的功能很强大,工作中,经常需要从数据库文件中查找索引数据到另一个文件中,如何实现这个引用?通过VLOOKUP函数,就可以轻松做到. VLOOKUP函数是一个纵向查找函数,用于按列进行查找索引数据.我们根据需求,进行设定就能快速完成. 步骤 打开电脑,点开Excel,打开数据库文件和需要引用数据的文件. 现以一份电子账册的料件为例:企业在海关备案了552个不同的商品,这552个"商品名称"有"备案序号",另一份料件表文件只有"备案序