2

Rails 4.2 の scaffold ジェネレーターの ERB では、変数/メソッドはテンプレートのどこから来るのですか?

以下の「_form.html.erb」テンプレートの singular_table_name と属性のようなもの。それらはメソッドですか?変数?このテンプレートで使用できるもののリストはどこにありますか?

たとえば(反射)いくつかの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 %>
4

0 に答える 0