我想根据环境重定向用户。用于暂存和生产的 URL 位于 rails 凭据中,为了避免规范错误,我不得不在环境未暂存或生产时添加new_session_path(resource_name)
。我有下面的 elsif 块:
protected
def after_confirmation_path_for(resource_name)
if Rails.env.staging?
Rails.application.credentials.confirmation_account_url_staging
elsif Rails.env.production?
Rails.application.credentials.confirmation_account_url_production
else
new_session_path(resource_name)
end
end
我不知道在这种情况下这是否是使用 elsif 块的好方法,还有其他选择吗?
你可以把它放在一个.env
文件中,以便为每个环境放置合适的网址
因此,当您执行ENV[CONFIRMATION_ACCOUNT_URL]
时,您将获得正确的URL,具体取决于正在运行的应用程序的环境。
您可以为每个可能.env.production
和.env.staging
或.env.development
的环境创建.env
文件。然后将变量放入每个.env
文件中。 Rails 将检查当前环境以获取您的.env
变量。