2009-03-23 8 views
2

私はProfileクラスとPhotosクラスの間に1対多の関係を持っています。プロファイルはユーザーの情報を保持し、写真はユーザーの画像を保持します。現在、プロフィールビューの下部に[写真をアップロード]リンクが表示されます。私は、同じフォーム上のすべてを詰め込むのではなく、別のビューにリンクを表示させたいのです。このリンクを表示するには、profile_photo.html.erbという新しいビューを作成するだけですか?写真に関連付けられた新しいコントローラとモデルを作成する必要がありますか?お勧めの練習は何ですか?Ruby on Rails:写真の新しいコントローラですか?

答えて

3

Railsはモデルに単数名を使用するため、「写真」クラスは「写真」と呼ばれる必要があります。

はい、それは別のリソースなので、写真を作成するための新しいコントローラを作成する必要があります。あなたはおそらく写真を最終的に編集して、説明などを加えたいと思うでしょう。

3

私はレーダーに同意します。あなたはPhotosControllerを作成したいと思うでしょう。あなたがそれをしたら、それをさらに進めて、routes.rbファイルにhas_many関係を定義することができます。これと同じように:これはprofile_photos_pathnew_profile_photo_path、などのようなURLを生成します

map.resources :photos 
    map.resources :profiles, :has_many => :photos 

...それはあなたを与えるかを確認するrake routesコマンドを実行します。これは、あなたがコードをDRYにして読みやすくするのに役立ちます。

+0

新しいユーザーがプロフィールフォームを完成すると、彼は写真フォームにリダイレクトされますが、写真テーブルにprofile_idを挿入するにはどうすればよいですか?プロファイルコントローラでredirect_toを実行するときにprofile_idを渡す必要がありますか?フォトコントローラでは、渡されたprofile_idを手動で挿入できます。 – Max

+0

ユーザーがプロファイルフォームを完成したら、それらをphotos_pathまたはprofile_photos_pathに誘導していますか?後で使用する場合は、profile_idをurlに含める必要があり、paramsハッシュでアクセスできます。 – vrish88

関連する問題