환경별로 config.action_controller.default_url_options = {: host = '#' '} 설정 방법
지금은 개발 호스트에서 작동하는 이것을 사용하고 있지만 프로덕션으로 이동할 때 {: host => ""} 코드를 수동으로 변경해야합니다.
post.rb
def share_all
url = Rails.application.routes.url_helpers.post_url(self, :host => 'localhost:3000')
if user.authentications.where(:provider => 'twitter').any?
user.twitter_share(url)
end
end
이것을 사용하고 환경별로 default_url_options를 정의하고 싶습니다.
post.rb
def share_all
url = Rails.application.routes.url_helpers.post_url(self)
if user.authentications.where(:provider => 'twitter').any?
user.twitter_share(url)
end
end
이 파일을 config / environments / development.rb에 추가하려고했지만 여전히 "링크 할 호스트가 없습니다! : host 매개 변수를 제공하거나 default_url_options [: host]를 설정하십시오"오류가 발생합니다.
development.rb
config.action_controller.default_url_options = {:host => "localhost:3000"}
그리고 나는 이것을 이렇게 시도했습니다.
development.rb
config.action_controller.default_url_options = {:host => "localhost", :port => "3000"}
편집하다:
나는 이제 이것을 따랐고 여전히 동일한 오류 가이드 http://edgeguides.rubyonrails.org/action_controller_overview.html#default_url_options
애플리케이션 컨트롤러
class ApplicationController < ActionController::Base
protect_from_forgery
include ApplicationHelper
def default_url_options
if Rails.env.production?
{ :host => "example.com"}
else
{:host => "example1.com"}
end
end
end
이것은 나를 미치게 만든다. 내가 여기서 무엇을 놓치고 있는가 ???
좋아 나는 그것을 쓰는 올바른 방법을 알아 냈다.
Rails.application.routes.default_url_options[:host] = 'localhost:3000'
:)
이 파일의 변경 사항을 적용하려면 서버를 다시 시작해야합니다.
default_url_options
에서 애플리케이션을 상속합니다 ActionMailer
.
가능한 한 DRY로 유지하기를 원하므로 ActionMailer
실제로 나머지 .NET과 다른 호스트 및 포트를 사용 하지 않는 한 동일한 환경의 여러 위치에서 호스트 및 포트를 하드 코딩하고 싶지 않습니다 Application
.
default_url_options
전체 Application
에 대해을 설정하려면 config/environment.rb
파일에 다음 줄을 추가하기 만하면 됩니다 ( MyApp
앱 이름으로 변경 ).
# Set the default host and port to be the same as Action Mailer.
MyApp::Application.default_url_options = MyApp::Application.config.action_mailer.default_url_options
이 문제를 해결하고 자동으로 설정됩니다 Application
의를 default_url_options
당신 같은에 config.action_mailer.default_url_options
:
$ MyApp::Application.config.action_mailer.default_url_options
#=> {:host=>"lvh.me", :port=>"3000"}
$ MyApp::Application.default_url_options
#=> {:host=>"lvh.me", :port=>"3000"}
config.action_mailer.default_url_options = {: host => "your host"}
for instance your host localhost:3000
you can put this in test.rb, development.rb, production.rb files host could be different from environment to environment
'code' 카테고리의 다른 글
Visual Studio 프로젝트에 추가 라이브러리를 추가하는 방법은 무엇입니까? (0) | 2020.12.11 |
---|---|
Unix ls 명령 : 옵션 사용시 전체 경로 표시 (0) | 2020.12.11 |
파이썬 : 압축 된 텍스트 파일에서 줄 읽기 (0) | 2020.12.11 |
파일 업로드를 위해 Express BodyParser를 비활성화하는 방법 (Node.js) (0) | 2020.12.11 |
PowerShell 또는 C #에서 프로세스에 대한 명령 줄 정보를 가져 오는 방법 (0) | 2020.12.11 |