Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:重定向到错误路径_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails:重定向到错误路径

Ruby on rails Rails:重定向到错误路径,ruby-on-rails,Ruby On Rails,当我从trips/new发送“form”时,我得到了“success”flash,它将我发送到“trips/index”路径,但我从“trips/show”获得视图。我试过几种组合,结果还是一样。我的路线: @trip = Trip.new(trip_par) if @trip.save redirect_to trips_index_path flash[:notice] = "success" else render trips_new_path f

当我从trips/new发送“form”时,我得到了“success”flash,它将我发送到“trips/index”路径,但我从“trips/show”获得视图。我试过几种组合,结果还是一样。我的路线:

@trip = Trip.new(trip_par)

  if @trip.save
    redirect_to trips_index_path
    flash[:notice] = "success"
  else
    render trips_new_path
    flash[:notice] = "ERROR"
  end
可能是路由/动作控制器有问题,还是我的错误?

几句话:

  • 您的routes.rb看起来不正确(不能解决您的问题,但可以节省您的时间):
    get'trips/delete'
    不应该是get,而应该是delete
  • 为了简化操作,我建议您将当前
    routes.rb.rb的5行代码替换为一行代码来完成此任务:
    resources:trips

    可以找到所有路由提示

  • 尝试将flash呼叫置于重定向到
  • 您所有的flash消息都是
    :注意
    。成功应该是
    :成功
    ,错误应该是
    :警报
    :危险
    ,具体取决于您使用的框架或约定
  • 几句话:

  • 您的routes.rb看起来不正确(不能解决您的问题,但可以节省您的时间):
    get'trips/delete'
    不应该是get,而应该是delete
  • 为了简化操作,我建议您将当前
    routes.rb.rb的5行代码替换为一行代码来完成此任务:
    resources:trips

    可以找到所有路由提示

  • 尝试将flash呼叫置于重定向到
  • 您所有的flash消息都是
    :注意
    。成功应该是
    :成功
    ,错误应该是
    :警报
    :危险
    ,具体取决于您使用的框架或约定

  • 尝试如下更改您的路线:

    if @trip.save
        flash[:notice] = "success"
        redirect_to trips_index_path
    else
        flash[:notice] = "ERROR"
        render trips_new_path
    end
    
    或者更容易使用“资源”,它会自动为您提供索引、显示等的所有路由

    get 'trips' => 'trips#index'
    
    尝试将rails/info/routes附加到浏览器中的url以查看类似的内容

    resources: :trips
    
    在列表中查找您的路线,或者为了更容易找到,您可以创建如下自定义路线

    http://localhost:3000/rails/info/routes
    

    尝试如下更改您的路线:

    if @trip.save
        flash[:notice] = "success"
        redirect_to trips_index_path
    else
        flash[:notice] = "ERROR"
        render trips_new_path
    end
    
    或者更容易使用“资源”,它会自动为您提供索引、显示等的所有路由

    get 'trips' => 'trips#index'
    
    尝试将rails/info/routes附加到浏览器中的url以查看类似的内容

    resources: :trips
    
    在列表中查找您的路线,或者为了更容易找到,您可以创建如下自定义路线

    http://localhost:3000/rails/info/routes
    

    问题是“trips/index”与“trips/:id”匹配,因此自动跟踪我到“trips/show”,因为trips/id==trips/show。我手动添加它,所以我必须删除这些不必要的路由,这是可以的。谢谢你的提示。

    问题在于“trips/index”与“trips/:id”匹配,因此会自动跟踪我到“trips/show”,因为trips/id==trips/show。我手动添加它,所以我必须删除这些不必要的路由,这是可以的。谢谢您的提示。

    要检查您是否有路由问题,请检查
    rake routes
    的输出,并查看您是否使用了正确的路由帮助程序。将您的路由命名为->
    获取“trips/index”,改为“trips#index”,如::trips#index
    ,请在此处检查,谢谢帮助,但是仍然不起作用。您可以共享导出的
    rake routes
    ?若要检查您是否有路由问题,请检查
    rake routes
    的输出,并查看您是否使用了正确的路由帮助程序。将您的路由命名为->
    获取“trips/index”,到:“trips#index”,如::trips#index
    ,请在此处检查,谢谢帮助,但是仍然不起作用。你能分享一下rake路由的导出吗?