Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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 什么';这是“什么?”;轨道;要创建到其他主机的路由帮助程序?_Ruby On Rails_Routes - Fatal编程技术网

Ruby on rails 什么';这是“什么?”;轨道;要创建到其他主机的路由帮助程序?

Ruby on rails 什么';这是“什么?”;轨道;要创建到其他主机的路由帮助程序?,ruby-on-rails,routes,Ruby On Rails,Routes,我的应用程序由两个rails服务器组成,它们在一个反向代理后面有着不同的关注点。让我们称他们为Server1和Server2。有时,Server1需要呈现指向Server2上url的链接。有没有一种很好的方法可以使用Rails路由助手来实现这一点?特别是在Rails 2中?我想到了这个: ActionController::Routing::Routes.draw do |map| # other routes omitted map.with_options(:host =>

我的应用程序由两个rails服务器组成,它们在一个反向代理后面有着不同的关注点。让我们称他们为Server1和Server2。有时,Server1需要呈现指向Server2上url的链接。有没有一种很好的方法可以使用Rails路由助手来实现这一点?特别是在Rails 2中?我想到了这个:

ActionController::Routing::Routes.draw do |map|

  # other routes omitted

  map.with_options(:host => 'server2.example.com') do |add|
    # create a named route for 'http://server2.example.com/thingies'
    add.server2_thingies         '/thingies',             :controller => 'fake'

    # create a named route for 'http://server2.example.com/thingies/combobulate'
    add.enhance_server2_thingies '/thingies/combobulate', :controller => 'fake'

    # create a named route for 'http://server2.example.com/mabobs/combobulate'
    add.enhance_server2_mabobs   '/mabobs/combobulate',   :controller => 'fake'

    # etc..
  end

end

因此,我可以在视图中使用
server2\u thingies\u url
等。这是可行的,但它让我觉得自己是个坏人,因为这里没有
FakeController
,我当然不打算将请求路由到它。我考虑过创建helper方法,并将它们放在
app/controllers/application\u controller.rb
中,但一位同事提出的论点是,最好将所有路由helper保留在routes.rb中,例如,
rake routes
之类的东西将是准确的。有更好的方法吗?

我只需将
:host
传递到您的
foo\u路径
foo\u url
调用


似乎比摆弄一个
FakeController

更干净,我只是把
:host
传递给你的
foo\u路径
foo\u url
调用


似乎比摆弄一个假控制器更干净,我想我应该向你的同事提出一个相反的论点:如果你不得不用一个“假控制器”弄脏routes.rb,那么你的
rake routes
仍然是不准确的。事实上,我想说的是,这正是帮助者想要帮助的事情:它采用纯粹属于视图的逻辑(链接生成),并将其从视图模板中删除。助手也更容易维护和调整


helper样式的另一个优点是,如果并且当升级到Rails 3.x时,
routes.rb
文件的黑客行为越少,您就会越高兴——我可以从经验中证明这一点。:)

我想我应该向你的同事提出一个相反的论点:如果你不得不用“FakeController”弄脏routes.rb,那么你的
rake routes
仍然是不准确的。事实上,我想说的是,这正是帮助者想要帮助的事情:它采用纯粹属于视图的逻辑(链接生成),并将其从视图模板中删除。助手也更容易维护和调整

helper样式的另一个优点是,如果并且当升级到Rails 3.x时,
routes.rb
文件的黑客行为越少,您就会越高兴——我可以从经验中证明这一点。:)