Rails elsif block for Rails.env



我想根据环境重定向用户。用于暂存和生产的 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变量。

最新更新