在Rails 4.2中的支架生成器的ERB中,变量/方法来自模板中的哪个位置?
类似于singular_table_name和以下属性' _form.html.erb'模板。他们是方法吗?变量?我在哪里可以找到此模板中可用的列表?
我尝试使用一些ActiveRecord类方法(例如反射)并且它们不可用。
如果它只是一个方法的集合列表,而不是从AR类中提取的,有没有办法从生成器传递实例变量,就像从控制器传递到视图一样?
最初来自.rvm / gems / ruby-2.2.0 / gems / railties-4.2.0 / lib / rails / generators / erb / scaffold / templates / _form.html.erb
我现在把这个文件(有效)放在rails_app / lib / templates / erb / scaffold中
<%%= form_for(@<%= singular_table_name %>) do |f| %>
<%% if @<%= singular_table_name %>.errors.any? %>
<div id="error_explanation">
<h2><%%= pluralize(@<%= singular_table_name %>.errors.count, "error") %> prohibited this <%= singular_table_name %> from being saved:</h2>
<ul>
<%% @<%= singular_table_name %>.errors.full_messages.each do |message| %>
<li><%%= message %></li>
<%% end %>
</ul>
</div>
<%% end %>
<% attributes.each do |attribute| -%>
<div class="field">
<% if attribute.password_digest? -%>
<%%= f.label :password %><br>
<%%= f.password_field :password %>
</div>
<div class="field">
<%%= f.label :password_confirmation %><br>
<%%= f.password_field :password_confirmation %>
<% else -%>
<%%= f.label :<%= attribute.column_name %> %><br>
<%%= f.<%= attribute.field_type %> :<%= attribute.column_name %> %>
<% end -%>
</div>
<% end -%>
<div class="actions">
<%%= f.submit %>
</div>
<%% end %>