Bvu*_*Ic7 5 ruby routing ruby-on-rails url-rewriting
我在环境/ test.rb中指定了default_url_options
config.action_mailer.default_url_options = { :host => "www.xyu.at" }
Run Code Online (Sandbox Code Playgroud)
这是非常好的,在我的黄瓜故事中,我测试用户注册,用户激活链接生成正确
invitation_activation_url(1)
=> "www.xyu.at/signup/1231hj23jh23"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试按照电子邮件中提供的链接时,使用features/steps/user_steps.rb中的以下代码(使用来自http://github.com/bmabey/email-spec/tree/master的 email-rspec ):
When /^I follow the invitation link$/ do
When 'I follow "'+invitation_activation_url(1) + '" in the email'
end
Run Code Online (Sandbox Code Playgroud)
这里使用default-host创建url:
invitation_activation_url(1)
=> "www.example.com/signup/1231hj23jh23"
Run Code Online (Sandbox Code Playgroud)
有谁能够帮我?我不知道我做错了什么......
谢谢!
编辑:
这似乎与该方法有关
current_url
Run Code Online (Sandbox Code Playgroud)
但我不知道它来自哪里..?
编辑:
我在我的features/support/env.rb中指定了正确的环境
ENV["RAILS_ENV"] ||= "test"
Run Code Online (Sandbox Code Playgroud)
编辑:
我的临时解决方案是,edbond说,
invitation_activation_url(1, :host => "www.xyz.at")
=> "www.xyz.at/signup/1231hj23jh23"
Run Code Online (Sandbox Code Playgroud)
但我不想以这种方式明确命名域名(我已经在我的环境/ test.rb文件中指定了它 - 这样它就不会干了)
在您的网址中使用 :host 选项。
invitation_activation_url(1, :host => "www.xyz.at")
=> "www.xyz.at/signup/1231hj23jh23"
Run Code Online (Sandbox Code Playgroud)
编辑:
您可以解析电子邮件正文并获取链接
mail = YourMailer.deliveries.last
email_html = Nokogiri::HTML mail.body.to_s
approve_link = email_html.at_css("a")["href"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3504 次 |
| 最近记录: |