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

项目.rb

has_many :tasks

任务.rb

belongs_to :project
4

1 回答 1

0

您正在重定向到@project,这被解释为重定向到 的显示页面@product。但是您显示页面调用重定向,因此重定向循环:

  1. 请求路由到显示页面
  2. 找项目
  3. 任务实例化
  4. 任务已保存
  5. 重定向到显示(循环回到 2)

通常您不会在 中创建记录show,而是在 中创建记录create。你这样做有什么理由吗?

于 2012-10-12T21:30:16.347 回答