0

タスクを持つプロジェクトで基本的なアプリを作成することに戻ります。プロジェクトのショー ビューで、タスクを一覧表示し、フォームも含めたいと考えています。これをすべて配線すると、310リダイレクトループが発生します。ゼロから何かを書いてからしばらく経ちましたので、私のコードを見て助けていただければ幸いです。

コントローラーコード:

def show
     @project = Project.find(params[:id])
     @task = @project.tasks.new(params[:task])

     if @task.save
         redirect_to @project, :notice => "Task added"
       else
         render action: :show
       end
   end

ビューコード:

<%= @project.project_name %>
<%= form_for(@task) do |m| %>
<%= m.label :Task %>
<%= m.text_field :task_name %>
<%= m.button :submit %>
<% end %>
<% @project.tasks.each do |t| %>
  <%= t.task_name %>
<% end %>

project.rb

has_many :tasks

task.rb

belongs_to :project
4

1 に答える 1

0

にリダイレクトしています。@projectこれは意味として解釈され、の表示ページにリダイレクトします@productただし、ショーページからリダイレクトを呼び出しているため、リダイレクトループは次のようになります。

  1. ページを表示するためにルーティングされたリクエスト
  2. プロジェクトを探す
  3. インスタンス化されたタスク
  4. タスクが保存されました
  5. 表示にリダイレクト(2にループバック)

通常、でレコードを作成するのではなく、で作成showしますcreate。あなたがこのようにそれをしている理由は何ですか?

于 2012-10-12T21:30:16.347 に答える