在 /new 和 /edit 中更改脚手架的按钮值

Posted

技术标签:

【中文标题】在 /new 和 /edit 中更改脚手架的按钮值【英文标题】:Changing button value of a scaffold when in /new and /edit in rails 【发布时间】:2013-10-01 17:31:36 【问题描述】:

我生成了一个 Stories 脚手架,现在当我在 stories/new 中时,我点击的按钮显示“创建故事”。我如何改变它的价值来表达其他东西,比如“创造故事”?

我已经进入了 stories/new.html.erb 和 stories/edit.html.erb,但是所有的都是

<%= render 'forms' %>

当我前往 stories/_form.html.erb 时,有一个

<div class="actions">
<%= f.submit class: "btn" %>
</div>

我知道你可以输入 ,但如果我这样做,它会说“Create Tale”用于创建和更新。当我在故事/编辑中时,我怎么能同时说“更新故事”?

【问题讨论】:

查看已编辑的示例(我只是花了一些时间才完成编写它们)... :) 【参考方案1】:

要给它起个名字,试试:

<%= f.submit class: "btn", name: "Create Tale" %>

根据动作不同的命名。我通常做的是将按钮名称从动作视图传递到表单模板中。 例如在 new.html.erb 中:

<%= render partial: 'form', button_name: 'Create Widget' %>

在edit.html.erb中:

<%= render partial: 'form', button_name: "Update Widget" %>

形式:

<%= f.submit name: button_name %>

另一种方法是不要将提交按钮放在“表单”部分中,而是将它们保留在操作视图中,例如“new.html.erb”

<%= form_for @widget do |f| %>
   <%= render partial: 'form' %>
   <%= f.submit name: 'Create Widget' %>
<% end %>

对于“edit.html.erb”

<%= form_for @widget do |f| %>
   <%= render partial: 'form' %>
   <%= f.submit name: 'Update Widget' %>
<% end %>

注意:代码未经测试,可能有问题,但你明白了......

【讨论】:

问题是通过输入 name: "Create Tale" 它会为 /edit 页面添加相同的内容。我不希望 /edit 页面按钮也显示“创建故事”【参考方案2】:

直接在表单上工作(部分_form)

<%= f.submit "Submit", class:"btn"%>

【讨论】:

【参考方案3】:

对于 Rails 5,更改:

在新视图和编辑视图中

和 以同样的方式。 然后在表单中使用: 代替

【讨论】:

以上是关于在 /new 和 /edit 中更改脚手架的按钮值的主要内容,如果未能解决你的问题,请参考以下文章

Grails 5.0.1 - 自定义脚手架 edit.gsp 模板和其他

如何通过单击 DataTable 同一行上的 Edit 按钮来获取 Id 值

在 laravel 中使用 x-editable 更改动态状态

matlab中字符能做四则运算吗

输入按钮未使用 select2 和 X-editable 提交

如何配置 Ext.grid.plugin.Editable 按钮?