Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 如何从Rails控制器调用另一个控制器#带有参数的操作(不是重定向)

Ruby on rails 如何从Rails控制器调用另一个控制器#带有参数的操作(不是重定向),ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我想支持vanity_URL,目前正在使用重定向,这很好,但更愿意调用控制器/操作/参数,如注释掉的部分: class VanityUrlController < ApplicationController def index item=VanityUrl.where('url=?',params[:url]).first if item.urlable_type=='Location' location=Location.find(item.urlabl

我想支持vanity_URL,目前正在使用重定向,这很好,但更愿意调用控制器/操作/参数,如注释掉的部分:

class VanityUrlController < ApplicationController

  def index
    item=VanityUrl.where('url=?',params[:url]).first
    if item.urlable_type=='Location'
      location=Location.find(item.urlable_id)
      redirect_to location_show_path(item.urlable_id)
      # would like something like this
      #call controller_name: locations, action: show, params: {id: item.urlable_id}
    end
  end
class VanityUrlController
这可能吗?谷歌给了我一大堆重定向sol'n,但我宁愿不重定向。如何做到这一点


thx

您看过这一个吗?有两种解决方案可以做到这一点—(1)将所需的方法逻辑提取到一个单独的文件中,并从两个位置调用它;(2)创建另一个控制器的实例并在该实例上调用方法(似乎代码更少,但概念上更混乱)thx,嗯。。。那些看起来有点不舒服-我希望有更优雅一点的东西(那是5年前的)。