2012-04-27 1 views
-2

ユーザーは多くの大学(出席している)を有し、大学はユーザーに属します。私はこれらのカレッジをcollege_profileというのは、ユーザーのプロフィールの大学の属性と呼んでいます。form_for [@parent、@child]は、Child#newで未定義のメソッド `parent_child_path 'を発生させます。

新しい大学を生成しようとしているときに問題が発生しています。何らかの理由で、まだ(ビュー/ college_profiles/new.html.erb)

<%= form_for [@user, @college] do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <%= f.label :name %> 
<% end %> 

そして:

def new 
    @user = User.find(params[:id]) 
    @college = current_user.college_profile.build if signed_in? 
end 

、ビュー同じくらいシンプル:現時点では、大学のための私のコントローラは非常に簡単です私は次のエラーを取得する:

NoMethodError in College_profiles#new 

Showing .../app/views/college_profiles/new.html.erb where line #4 raised: 

undefined method `user_college_profiles_path' for #<#<Class:0x5bf1b68>:0x673aef8> 

私はまだレールを学んでいますように、私は実際にも、このエラーが正確に参照しているものを理解していません。かなりの量のGoogle-ingが私に運が与えられていないか、答えがの場合はですが、私はそれを見ているだけではわかりません。どんな助けでも大歓迎です!任意のより多くの情報が必要な場合は、ちょうど私に知らせて

resources :users, :only => [:index, :new, :create, :destroy, :update, :edit] do 
    resources :college_profiles, :only => [:new, :create] 
end 

:それは関連性がある場合、我々はパスの話をしているよう

、見て、ここに私のルートファイルからの抜粋です。ありがとう!

+2

:college_profile、そうであってはならない:college_profiles? –

+0

@ismaelgaうわー、それはそこで問題を解決したかもしれません。私は混乱し続ける時に複数形にしないでください... –

+0

@ismaelga投稿は答えとして、OPが受け入れることができます:) –

答えて

2

事がおよそform_forそのURLは、あなたが渡されたモデルに基づいていることであるあなたのケースでは、それはです:。

<%= form_for [@user, @college] do |f| %> 

Railsは自動的にあなたが@userUserを割り当てたためuser_college_profiles_pathを探し、@collegeからcurrent_user.college_profileRuby on Rails Guides: Rails Form Helpers

<%= form_for([@user, @college], :url => your_custom_route_path) do |f| %> 

あなたがする必要があるすべてはあなたのroutes.rb

ソースでyour_custom_routeを作成することです:

幸いなことに、Railsは提出フォームが上に行くだろう、デフォルトのURLを上書きする方法を提供しますあなたが持っているルートの

+0

ありがとう!これはエラーを過ぎて私を得たようだが...正直言って、私はそれを与えるべきであるURLがわからない。私は 'College_Profile#create'への名前付きパスを生成しましたが、フォームデータを引き継ぐようには見えませんでした。私が間違っていることは何か考えていますか? –

+0

'User'と' CollegeProfile'の関係は何ですか?それは1対多ですか?あなたの編集に基づいて、あなたの問題は、フォーム自体の代わりにあなたのモデルやルートと関係があると思います。 –

+0

ユーザーには多くの大学があり、Collegeはユーザーに属します。カスタムURLを追加するとエラーは停止しましたが、おそらく私のモデルのために新しい問題が発生している可能性があります。私は、データを保存しようとするCollege_Profileの作成メソッドにフォームを渡すことができると思った。 –

0

Railsは、フォームからコントローラにデータを送信するためのパスを作成しようとしています。探しているアクションは作成されていますが、あなたのルートには新しく定義されたアクションしかありません。お使いのコントローラがCollegeProfiles呼び出された場合、あなたはあなたのネストされたルートを変更する必要があります:

resources :college_profiles, :only => [:new, :create] 
+0

クイック返信ありがとうございますが、それはそれではありません。私はそれを加え、それは何も変えなかった。また、私の理解では、newは新しいオブジェクトを初期化するためのもので、フォームを送信して保存した後に作成されます。いずれにせよ、私はそれにショットを与えたが、運はなかった –

+0

あなたのサーバーを再起動しましたか?レーキルートを走らせるとどうなるでしょうか? –

関連する問題