私はProfileクラスとPhotosクラスの間に1対多の関係を持っています。プロファイルはユーザーの情報を保持し、写真はユーザーの画像を保持します。現在、プロフィールビューの下部に[写真をアップロード]リンクが表示されます。私は、同じフォーム上のすべてを詰め込むのではなく、別のビューにリンクを表示させたいのです。このリンクを表示するには、profile_photo.html.erbという新しいビューを作成するだけですか?写真に関連付けられた新しいコントローラとモデルを作成する必要がありますか?お勧めの練習は何ですか?Ruby on Rails:写真の新しいコントローラですか?
2
A
答えて
3
Railsはモデルに単数名を使用するため、「写真」クラスは「写真」と呼ばれる必要があります。
はい、それは別のリソースなので、写真を作成するための新しいコントローラを作成する必要があります。あなたはおそらく写真を最終的に編集して、説明などを加えたいと思うでしょう。
3
私はレーダーに同意します。あなたはPhotosControllerを作成したいと思うでしょう。あなたがそれをしたら、それをさらに進めて、routes.rbファイルにhas_many関係を定義することができます。これと同じように:これはprofile_photos_path
、new_profile_photo_path
、などのようなURLを生成します
map.resources :photos
map.resources :profiles, :has_many => :photos
...それはあなたを与えるかを確認するrake routes
コマンドを実行します。これは、あなたがコードをDRYにして読みやすくするのに役立ちます。
関連する問題
新しいユーザーがプロフィールフォームを完成すると、彼は写真フォームにリダイレクトされますが、写真テーブルにprofile_idを挿入するにはどうすればよいですか?プロファイルコントローラでredirect_toを実行するときにprofile_idを渡す必要がありますか?フォトコントローラでは、渡されたprofile_idを手動で挿入できます。 – Max
ユーザーがプロファイルフォームを完成したら、それらをphotos_pathまたはprofile_photos_pathに誘導していますか?後で使用する場合は、profile_idをurlに含める必要があり、paramsハッシュでアクセスできます。 – vrish88