在 /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 更改动态状态