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})%>
相关文章
|
数据采集 数据可视化 数据挖掘
数据分析案例-汽车客户信息数据可视化分析
数据分析案例-汽车客户信息数据可视化分析
959 0
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
阿里云GPU云服务器专属活动:按量付费1折起,新人专享包月5折起,包年4折起
阿里云弹性计算GPU云服务器以强劲算力赋能AIGC,迅速构建对话大模型、AI绘画平台等多元化应用。其高端GPU配置如T4、V100、A10卡,满足不同场景需求,新用户可享包月5折、包年4折优惠。服务器支持包年包月和按量付费,灵活计价。目前推出超值AIGC之旅、新人专享及官网特惠等优惠,最低1折起。
|
4月前
|
文字识别 算法 API
二维码OCR识别-条形码OCR-图像识别接口介绍
本API提供高精度条码识别服务,兼容所有主流一维码、二维码格式,支持URL/Base64/文件上传。依托图像增强算法,显著提升破损、倾斜、反光等复杂场景下的识别成功率,精准提取明文数据,轻量对接物流、零售、政务等八大场景系统。
264 0
|
5月前
|
弹性计算 人工智能 对象存储
阿里云服务器专属活动:轻量应用服务器与云服务器ECS优惠政策及活动价格参考
阿里云ECS"限时特惠"活动面向开发者、初创企业及企业用户提供差异化高性价比方案。开发者可选轻量应用服务器68元/年起或ECS经济型e实例99元/年起,开箱即用;初创企业专享u2i实例,2核4G低至9.9元/月,算力最高提升40%;企业用户可选第9代ECS,搭载英特尔至强6处理器,提供c9i、g9i、r9i等专业实例。活动还推出弹性GPU算力加速AI落地,支持大模型推理与训练,并提供OpenClaw分钟级部署方案,无需写代码即可搭建AI助理。
|
10月前
|
Kubernetes Go API
xkube v4.0发布,完全开发源代码并新增k8s网关、亲和性很多k8s实用功能
xkubе v4.0 是开源K8s可视化管理平台(Gitee:https://gitee.com/eeenet/xkube),全面开放Go后端源码。新增Gateway API全系支持(Gateway/HTTPRoute/GRPCRoute等)、增强Deployment/STS/Job配置能力、Pod资源Top监控、节点资源统计及审计日志,界面与依赖全面升级。
763 228
|
7月前
|
Oracle 关系型数据库 MySQL
MySQL 9.0数据库安装教程:自定义路径+密码配置(64位)
MySQL是Oracle旗下的流行关系型数据库,广泛用于Web应用。本文详解MySQL 9.0(64位)在Windows系统的安装与配置流程:从下载解压、管理员运行安装向导、自定义路径、设置root密码,到服务配置及命令行验证,步骤清晰,操作简便。(239字)
|
7月前
|
安全 索引 Python
使用Python轻松玩转Excel工作表:添加与删除实战指南
本文以轻松对话形式,介绍如何用Python(openpyxl库)高效批量处理Excel:三行代码添加/删除工作表,一个循环搞定二十多个文件;附避坑指南与实战工具,助办公族告别重复操作,提升效率。(239字)
568 2
|
7月前
|
人工智能 安全 API
2026 最新版 OpenClaw 快速安装与常见疑问解答(包含新安装包)
提供 2026 最新版 OpenClaw 的快速安装流程,省去复杂配置步骤,并汇总用户在安装和使用中高频出现的疑问,统一进行清晰解答。
|
6月前
|
监控 关系型数据库 MySQL
【MySQL CPU飙升困扰】排查无从下手?掌握这套系统化性能调优方案,快速定位并解决性能瓶颈
日常运维中,MySQL CPU骤升至90%+令人焦头烂额?本文提供一套经生产验证的系统化排查方法论:从慢查询、锁竞争、参数配置到架构优化,精准定位根因,杜绝“重启救火”。240字
|
8月前
|
存储 安全 开发者
小米14手机开启USB功能教程
小米14(澎湃OS)USB连接分两类:基础文件传输(下拉通知栏选MTP/PTP,无需开发者模式)和USB调试(需先连点7次OS版本开启开发者选项,再启用USB调试等)。支持传文件、ADB、刷机等,附常见问题解决提示。(239字)
2651 0