IT Rescue IT関連Tips情報

Ruby On Railsのurl_forヘルパでHTTP以外を利用

2007年5月22日Ruby

Rails の url_for ヘルパで、HTTP 以外のスキームへの URL の作り方。

link_to, start_form 等も url_for に渡してるだけなので、同様。

単に :protocol を設定すればいいのだけれど、
:only_path のデフォルトが true だったりします。
(cf. action_view/helpers/url_helper.rb の url_for)

ので、セットで指定しないとハマるというおはなし。

{:only_path => false, :protocol => 'https://', ...}

:protocol といいつつ、スキームと区切記号を指定するのにも注意。

script/console から app.url_for で呼んだ場合には
:only_path のデフォルトが false だったりするのも混乱に拍車をかけてたり?

% script/console
Loading development environment.
>> app.url_for({:protocol => 'foo://', :controller => :bar})
=> "foo://www.example.com/bar"
>> 

なお、ホスト名は @request.host_with_port がデフォルトなので、
別のホストやポートを指定したい場合は :host で指定します。
(cf. action_controller/url_rewriter.rb の rewreite_url)

{:only_path => false, :host => 'host.example.org:8080', ...}

1件のコメント

  1. 匿名 より:

    グッジョブ!

コメントをどうぞ

免責事項

著作権者の文書による承諾を得ずに、本サイトの内容の一部、全部を無断で複写、複製、転載することは、禁じられています。
また、当ウェブサイト に記載された情報の完全性・正確性に対して一切の保証を与えるものではありません。当ウェブサイトに含まれる情報もしくは内容を利用することで直接・間接的に生じた損失に関し一切責任を負わないものとします。