インスタンス変数への命名規則

I have a model ProductFeature

a controller called
product_feature_controller.rb

私はこのコントローラ用の私のCRUDの ‘編集’メソッドを書いています。 editメソッドでは、
@productFeature という名前のインスタンス変数を作成し、
ProductFeature.find(:id)と同じに設定し、このインスタンス変数をビューに送信します
form_for(:product_feature)で使用されます。私のフォームは、私が引っ張っているレコードの現在のデータでフィールドを埋めることはないことがわかった。数時間毛髪を引っ張った後、私のエラーは私のインスタンス変数という名前のすべての途中にあることがわかった。

@productFeatureの代わりに@product_featureという名前にする必要があります。これはほんの少しの細部のようですが、なぜこれが当てはまるのか本当に知りたいです。これはどのように機能しますか?私は、Railsがインスタンス変数の名前に基づいてフォームにデータを設定することをどのように知っていますか?私は私の質問がはっきりしていることを願っています。

ベストアンサー

:product_feature
というシンボルは、そのシンボルに基づいてインスタンス変数を検索します。これは変換を行わず、
@product_feature
変数を探します。それらが一致する限り、大丈夫ですが、Rubyの世界では単語間にアンダースコアが使用されています。

また、モデルは大文字の ProductFeature
という名前で命名されなければなりません。これが問題を引き起こすかどうかはわかりませんが、それは規範に反しています。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です