使用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&#39;标题,对于使用相同_form.html.erb文件的编辑页面相同 - 它最终以&#39; Edit system_cat&#39;结束。
答案 0 :(得分:3)
尝试:
<h1><%= @system_cat.new_record? ? 'New' : 'Edit' %> system_cat</h1>
答案 1 :(得分:2)
这部分是评论讨论
的后续内容正如我在评论中所写,您引用的标题实际上(或者至少应该是)在新的和编辑的特定操作视图文件中(所以new.html.erb
和edit.html.erb
)。如果您查看这些文件,他们实际上会调用您的_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指出的那样,有时候有必要做些类似的事情,但是如果你能避免它,它通常会使代码更加清晰。因此,另一种方法是简单地编辑这些动作视图文件中的标题。
正如我在评论中所写,_form.html.erb
没有(或不应该)关心是从编辑还是新动作调用它。它是新的和编辑文件,它们称之为部分文件,应该负责设置一般的,特定于行动的,如标题之类的东西。