【问题标题】:how to override the heading on rails new/edit form如何覆盖rails新/编辑表单上的标题
【发布时间】:2014-05-21 15:18:17
【问题描述】:

使用 Rails 3、Ruby 1.9、bootstrap 和 jQuery。

在我的 _form.html.erb 我有:

<%= form_for(@system_cat, :html => {:class => "form form-horizontal system-cat"}) do |f| %>

application.html.erb 有:

<html>
<head>
  <title>System Catalog</title>
  .
  .
  .
</head>
<body>
  <%= yield %>
</body>
</html>

页面结束:

.
.
.
<body>
  <h1>New system_cat</h1>
.
.
.

一切正常,我只想替换“新 system_cat”标题,与使用相同 _form.html.erb 文件的编辑页面相同 - 它以“编辑 system_cat”结尾。

【问题讨论】:

  • 我不确定我是否完全清楚;您是否知道这些标题包含在 new.html.erbedit.html.erb 文件中?您可以简单地编辑这些文件并替换 &lt;h1&gt; 标记中的文本。这就是你要找的东西吗?
  • 标签是自动生成的,我没有放在那里,但我会放一个,只是想有一些方法可以告诉 form_for 在标题中放什么跨度>

  • @cordii - form_for 不会生成这样的标题,它必须在其他地方创建。
  • 是的,当您生成视图时(例如当您执行 rails g scaffold... 时),标题会在 newedit html.erb 文件中自动生成。基本上是这样想的; _form.html.erb 不(或不应该)关心它是从编辑还是新操作中调用的。它是 newedit 文件,它们调用了部分文件,应该负责设置一般的、特定于操作的、标题等内容。
  • LOL,我什至没有查看 new.html.erb 和 edit.html.erb,因为我一直在做的所有工作都是处理表单,哈哈哈....呵呵!

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

试试:

  <h1><%= @system_cat.new_record? ? 'New' : 'Edit' %> system_cat</h1>

【讨论】:

  • 好老方法。非常好!
  • 抱歉,我可能遗漏了什么;当您可以简单地在editnew html.erb 文件中适当地设置标题时,您是否有理由这样做?
  • 在这种情况下很可能没有。但是,这可以在部分中使用,然后可以在 newedit 和任何其他操作或视图中使用。
  • 感谢@BroiSatse 我没有在 system_cat 表单上使用它,但我确实将它用于我正在构建的另一个表单并且效果很好!
【解决方案2】:

这是对 cme​​ts 讨论的部分跟进

正如我在 cmets 中所写,您所指的标题实际上(或至少,应该)在特定的操作视图文件中用于新建和编辑(所以 new.html.erb 和 @987654322 @)。如果您查看这些文件,它们实际上是在调用您的 _form.html.erb 部分文件。例如,这是我的new.html.erb 之一:

<h2>Add Device</h2>
<%= render :partial => 'form' %>

edit.html.erb 看起来像:

<h2>Edit Device</h2>
<%= render :partial => 'form' %>

同样的事情;不同的标题。

BroiSatse 的答案很好并且会起作用,但我担心会在您的部分中放置太多特定于操作的逻辑。正如 BroiSatse 所指出的,有时有时需要做这样的事情,但如果你能避免它,它通常会使代码更简洁。因此,另一种方法是简单地编辑这些动作视图文件中的标题。

正如我在 cmets 中所写,_form.html.erb 不(或不应该)关心它是从编辑还是新操作中调用的。它的新文件和编辑文件称为部分文件,应该负责设置一般的、特定于操作的、标题等内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多