在轨道上的红宝石中没有路径的控制器动作 - 是否可能?

时间:2013-07-16 13:07:05

标签: ruby-on-rails rails-routing

我对Ruby很新,可能做的不正确但是如何在没有路径的情况下进行控制器操作?

我需要此控制器仅用于从另一个控制器重定向。 见下文

  def redirect_to_correct_stage
case @lession_stats.stage
  when 'stage1'
    puts "Redirecting to stage1"
    redirect_to :action => :stage1
    return
  when 'stage2'
    puts "Redirecting to stage2"
    redirect_to :action => :stage2
    return
  when 'stage3'
    puts "Redirecting to stage3"
    redirect_to :action => :stage3
    return
  else
    redirect_to root_path, :alert => t(:error_unknown_stage)
end

我的主要操作是redirect_to_correct_stage并且具有正确的路径('/ word'),我需要将其重定向到基于模型值的正确操作。

一切正常但现在人们可以使用('/ stage3')直接进入stage3 当然,我可以在stage3动作中添加更多检查,但我不想检查两次。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

控制器操作是一种带有路径的方法,是应用程序的入口点。如果您确实添加了一个没有路由的方法,则无法通过Web请求调用它。