我在application_helper
def title(page_title)
content_for :title, page_title.to_s
end
和我自定义脚手架编辑模板(lib/templates/erb/scaffold/edit.html.erb
)
<% title "Edit " + plural_table_name.capitalize+@<%=singular_table_name %>.id.to_s %>
<%%= render 'form' %>
但是当我运行rails g scaffold subject title:string contents:text
时,会出现错误:
&#39;模板&#39 ;:未定义的方法&#39;标题&#39;
请告诉我如何在脚手架模板中使用title
来自动生成。
答案 0 :(得分:3)
我认为您应该使用<%%
代替<%
,而不是:
<%% title "Edit " + plural_table_name.capitalize+@<%=singular_table_name %>.id.to_s %>
因为title
是一个未在scaffold lib中定义的函数,并且在运行generate scaffold
时没有编译。
答案 1 :(得分:0)
我觉得这里有点误会。根据{{3}}:
,这是一个脚手架是什么Rails中的脚手架是一整套模型,数据库迁移 该模型,操纵它的控制器,查看和操纵视图 数据,以及上述各项的测试套件。
因此,当您说rails g scaffold subject title:string contents:text
时,您正在创建一个模型Subject
,其属性为title
(类型为字符串)和contents
(类型为text),以及可以用它自动创建的所有文件。
从那里,您可以在.erb文件中使用title
。例如:
<% title "Edit " + plural_table_name.capitalize %>
<%= render 'form' %>
此外,我不确定您在此处尝试做什么:plural_table_name.capitalize+@<%=singular_table_name %>.id.to_s
,但我相当确定无效。