【问题标题】:Rails 310 Redirect LoopRails 310 重定向循环
【发布时间】:2012-10-03 18:04:55
【问题描述】:

我要回去编写一个带有任务的项目的基本应用程序。在我的项目展示视图中,我想列出任务并包含一个表单。当我把这一切连接起来时,我得到 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

task.rb

belongs_to :project

【问题讨论】:

    标签: ruby-on-rails-3 model-view-controller redirect controller


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 2011-08-14
      • 1970-01-01
      相关资源
      最近更新 更多