Ruby on Rails でeditの際の_form.rhtmlにあらかじめ値が挿入されているのは、どういった仕組みによるものなのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2009/11/12 21:19:22
  • 終了:2009/11/19 21:20:02

ベストアンサー

id:cuspos No.1

cuspos回答回数49ベストアンサー獲得回数102009/11/13 09:16:39

ポイント60pt

おはようございます。どういった仕組みという表現にあてはまるのか不明ですがおおむね以下のようなイメージです。


まず_form.rhtmlはviewの共通部分を使いまわすための仕組みです(render partialという記述があるはずです)。newとeditのアクションではフォームは同じ可能性が高いので、この部分を共通化して外だしすることがあります。これはDRYの原則にのっとって考えると、何回も同じ内容を書くのはコードの複雑化を招く&実際に修正するときに1箇所の修正でよいので便利です。


なんで値が入っているか?ですが、editの場合controller(もしくはmodelでやってるかもしれませんが)で

@hoge = Hoge.find(params[:id])

とかしているはずです。で@hogeのそれぞれの要素をviewでtext_fieldとかを使って表示しています。showアクションだったら編集しないので@hogeの要素を表示しています。

id:tyn

cusposさん、回答有難うございます。

コントローラで値を取得してtext_fieldのところで指定して表示しているのですね。暗黙的にそうなのかなと思っていましたが、改めて教えて頂き

もやもやが解消されました。ありがとうございました。

2009/11/19 17:42:31
  • id:cuspos
    ちょっとずれてるかもしれませんが・・・
    railsプロジェクトのトップディレクトリで
    $ruby script/console
    としてirbを起動して下さい。
    で、@hoge = Hoge.find(1)
    とすると、@hogeの中身を見る事ができます。
    そうするとviewで@hoge.honyararaとして、値が入っているのがざっくりと理解出来ると思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません