2012-04-25 8 views
0

のための未定義のメソッド `my_teas_path '@tea(表示ページ)の属性を使用して@my_teaを作成するボタンを最初のレイルプロジェクトで行います。#<#<クラス:0xa8930c8>:0xa578cf8>

'未定義のメソッド `my_teas_path' #<#について:これは私が取得していますエラーです私は_new部分の内側my_teasでフォームを持つ試してみました0xa578cf8>

/、紅茶内部/ _add_teaはどちらも私に同じエラーを与えています。とにかくここに私のコードがあります。 ビュー:

<%= form_for([@user, @my_tea]) do |f| %> 
    <%= f.hidden_field :name, :value => @tea.name %> 
    <%= f.hidden_field :tea_type, :value => @tea.tea_type %> 
    <%= f.hidden_field :store, :value => @tea.store %> 
    <%= f.hidden_field :user_id, :value => current_user.id %> 

    <%= fields_for [@user, @tea_relationship] do |r| %> 
     <%= r.hidden_field :tea_id, :value => @tea.id %> 
    <% end %> 

<%= f.submit "Add Tea", class: "btn btn-large btn-primary" %> 
<% end %> 

my_teaコントローラ

def new 
    @my_tea = MyTea.new 
end 

def show 
    @my_tea = MyTea.find(params[:id]) 
end 

def create 
    @my_tea = MyTea.new(params[:my_tea]) 
    if @my_tea.save 
    flash[:success] = "Tea added to your teas!" 
    else 
    redirect_to user_path 
    end 
end 

茶コントローラ:

def show 
    @tea = Tea.find(params[:id])  
    @my_tea = MyTea.new 
    @tea_relationship = TeaRelationship.new 
end 

ルート

resources :users do 
      resources :my_teas 
    end 
    resources :teas 

モデル:

class User < ActiveRecord::Base 
has_many :my_teas, :dependent => :destroy 
has_many :tea_relationships, :dependent => :destroy 

class MyTea < ActiveRecord::Base 
belongs_to :user 

class TeaRelationship < ActiveRecord::Base 
    belongs_to :user, class_name: "User" 
end 

茶のモデルは何にも属しません。

レールのコミュニティを助けてください、あなたの私の唯一の希望:P

更新 それが動作します。この

<%= form_for([@user, @my_tea]) do |f| %> 
    <%= f.hidden_field :name, :value => @tea.name %> 
    <%= f.hidden_field :tea_type, :value => @tea.tea_type %> 
    <%= f.hidden_field :store, :value => @tea.store %> 
    <%= f.hidden_field :user_id, :value => current_user.id %> 

    <%= fields_for @tea_relationship do |r| %> 
     <%= r.hidden_field :tea_id, :value => @tea.id %> 
    <% end %> 

<%= f.submit "Add Tea", class: "btn btn-large btn-primary" %> 
<% end %> 

と@my_teaの提出が、@tea_relationshipに自分のフォームを変更しません。

+0

あなたの 'form_for'に' @ users'の代わりに '@ user'を使用しましたか? – pjumble

+0

ええ、私は意味した@user – monkitman

+0

ここに表示されているコードのどの行にエラーが発生していますか? – Mischa

答えて

0

だから、物事の外観と見た目では、いくつかの入れ子になったフォームをしようとしているようです。多対多の関係のようにも見えます(tea.rb < => tea_relationship.rb < => my_tea.rb)モデルが正しく設定されていることを確認してください。

Many to Many

私はなぜあなたは[@user, @my_tea]

Nested Forms

をやろうとしていることを確認していないのに役立ちます

<%= form_for @my_tea, :url => posting_path do |f| %>  
    <%= f.simple_fields_for :teas, @my_tea.teas.build do |x| %> 
      ... 
    <%end%> 
    ... 
<%end%> 

希望のラインでより多くする必要があります!

+0

投稿を更新しました。茶のモデルは他のモデルを所有していないか、そのモデルに属していません。 MyTeasはTeaRelationshipと同様にユーザーに属します – monkitman

関連する問題