QA@IT

Railsで複数IPを認証する方法は何ですか?

2429 PV

私の routes.rb

constraints(:ip => Settings.ip.allow) do
  post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
end

私の settings.yml

ip:
  allow: '127.0.0.1'

この動作は大丈夫です。

でも、複数IPを追加すれば:

ip:
  allow: '/127.0.0.1|127.0.0.2/'

動きは間違いでした。このやり方で、正しい書き方は何ですか?

回答

YAMLファイルでは通常 Regexp を表現できません。
以下のように、Rubyオブジェクトとしてのクラスをタグで指定してみてください。

ip:
  allow: !ruby/regexp /127.0.0.1|127.0.0.2/
編集 履歴 (1)
  • Another way: routes.rb: `constraints(:ip => %r{#{Settings.ip.allow}}) do`, settings.yml: `allow: '127.0.0.1|127.0.0.2'` -
ウォッチ

この質問への回答やコメントをメールでお知らせします。