0

私の最初の Rails プロジェクトでの現在の目標は、 (ページを表示)@my_teaの属性を使用してを作成するボタンを作成することです。@teaこれは私が得ているエラーです:

'undefined method `my_teas_path' for #<#:0xa578cf8>

my_teas/ 内と teas/_add_tea 内の _new パーシャルでフォームを使用しようとしましたが、両方とも同じエラーが発生しました。とにかく、ここに私のコードがあります。意見:

<%= 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

ティーモデルは何にも属さない。

あなたの私の唯一の希望であるRailsコミュニティを助けてください: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 は送信しません。

4

1 に答える 1

0

ですから、物事を見て、ちらっと見ると、ネストされたフォームを実行しようとしているように見えます。また、多対多の関係があるように見えます(tea.rb <=> tea_relationship.rb <=> my_tea.rb)モデルが正しく設定されていることを確認してください。

多対多

なぜあなたがやろうとしているのかわかりません[@user, @my_tea]

ネストされたフォーム

の行にもっとあるべきです

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

お役に立てば幸いです。

于 2012-04-26T00:44:42.377 に答える