如何修改Ruby on Rails局部表单中的form.submit按钮文本
自定义Rails表单提交按钮文本的几种方法
你在共用局部表单里遇到的按钮文本问题,其实Rails提供了好几种灵活的解决方式,完美适配新建和编辑两种场景:
1. 根据模型状态动态切换文本
利用Rails模型内置的new_record?方法,判断当前@customer是新建对象还是已存在的编辑对象,从而动态设置按钮文本:
<p> <%= form.submit @customer.new_record? ? '添加新客户' : '更新客户信息' %> </p>
new_record?会返回布尔值:当对象还未存入数据库时(新建场景)返回true,编辑时返回false,这样就能自动匹配不同场景的按钮文本了。
2. 使用国际化(I18n)统一管理(推荐)
如果你的项目需要多语言支持,或者想把文本集中管理,可以通过Rails的I18n功能配置:
在config/locales对应的语言文件里(比如zh-CN.yml)添加以下配置:
zh-CN: helpers: submit: customer: create: "添加新客户" update: "更新客户信息"
配置完成后,不用修改视图里的form.submit,Rails会自动根据当前场景(新建/编辑)加载对应的文本,这种方式更优雅,也方便后续维护。
3. 强制统一文本(不区分场景)
如果不管是新建还是编辑,都想用同一个按钮文本,直接给form.submit传入字符串参数即可:
<p> <%= form.submit '提交客户信息' %> </p>
内容的提问来源于stack exchange,提问作者Ilja KO
相关产品推荐
相关产品推荐

