私は RoR アプリケーションを持っており、足場の生成により、モデルの新しいアクションと編集アクションが得られました。ビューには、_form.html.erb があります。このフォームには、たまたま attr_accessible である 2 つのフィールドへの入力がありますがcreated_at
、updated_at
や などのフィールドへの入力はありませんid
。
すべてのモデルに対してカスタムの他のフォームとビューを生成したいと考えています。手動で設定する必要があるフィールドをプログラムで見つける方法と、Rails によって設定されるフィールドを知りたいです。モデルウィジェットがある場合、Widget.columns はすべてのフィールドを提供します。
Rails の scaffold 生成は、フォームに入力するフィールドをどのように認識しますか。また、「created_at」と「updated_at」の設定方法を決定するコードはありますか? それとも、これはDBによって行われますか?
更新:明確にするために、具体的にやりたいこと:
多数の行/エンティティをアップロードするためのフォームを生成しています。そのため、フォームに含めるフィールドを知る必要があります。フィールドは常に
Widget.accessible_atributes
手動で設定されますか?自動的に含めるフィールドを知る必要があります。モデルの新しいメソッドを使用すると
created_at
、updated_at
、 、id
が自動的に設定されます。テーブルに数千行をロードしたいのですが、SQLロードファイルコマンドのようなことをします.created_atとupdated_atを設定する必要がありますが、idは設定しないでください. 設定するフィールドを知るにはどうすればよいですか。私はいくつかの仮説的な方法を探しています>> Widget.auto_columns # returns {:created_at => '04/12/2013 9:29pm', :updated_at => '04/12/2013'}
更新 2 :スキャフォールディングがどのように行われるかを確認しようとしています。フォームで表示します。
<% attributes.each do |attribute| -%>
<div class="field">
<%%= f.label :<%= attribute.name %> %><br />
<%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
</div>
<% end -%>
<div class="actions">
<%%= f.submit %>
</div>
<%% end %>
トールの引数メソッドでscaffold_generator.rbに属性配列が生成されていると思います。