现在已经尝试解决这个问题6个小时了。希望有人能指出这一点。我有一个代码库在heroku上运行多个应用程序。有些应用已拥有自己的域名。我已经在使用主机为每个正常工作的应用程序设置区域设置。见下文。但是,对每个主机进行身份验证(隐藏公开的非就绪应用程序)不起作用。
在应用程序控制器中设置区域设置 - 运行良好:
<div class="container">
<div class="row">
<h2 style="text-align: center;">Powerful Purpose</h2>
<div class="" style="width:70%;margin:0 auto;">
<ul class="nav nav-tabs tabs-up " id="mainNavTabs" style="text-align: center;">
<li><a href="about.php" data-target="#aboutus" class="media_node active span" id="aboutus_tab" data-toggle="tabajax" rel="tooltip">About The ADRC</a></li>
<li><a href="participants.php" data-target="#participants" class="media_node span" id="participants_tab" data-toggle="tabajax" rel="tooltip"> Participants / Researchers</a></li>
<li><a href="researcher.php" data-target="#researcher" class="media_node span" id="researcher_tab" data-toggle="tabajax" rel="tooltip">Scientists / Researchers</a></li>
<li><a href="healthcare.php" data-target="#healthcare" class="media_node span" id="healthcare_tab" data-toggle="tabajax" rel="tooltip">Healthcares providers</a></li>
</ul>
</div>
<div class="tab-content">
<div class="tab-pane active" id="aboutus"> </div>
<div class="tab-pane" id="participants"> </div>
<div class="tab-pane " id="researcher"></div>
<div class="tab-pane " id="healthcare"></div>
</div>
</div><!--/row-->
</div><!--/container-->
现在我的主页是'static_pages #home'所以我首先想到我把方法放在static_pages_controller中但是没有用,所以我甚至尝试了application_controller。甚至尝试为每个环境设置默认URL(在application_controller中)但是没有运气(more here)。哦,是的,我试图限制每个环境没有运气。所以我尝试了几个版本,这是application_controller中的那个(给出nomethod错误):
before_filter :extract_locale_from_domain
def extract_locale_from_domain
domain = request.host
if domain == 'www.domain.hu'
I18n.locale = :'hu'
elsif domain == 'www.domain.com'
I18n.locale = :'en-US'
else
I18n.locale = :'en-US'
end
end
这给出了错误:
before_filter :authenticate
def authenticate
domain = request.host
if domain == 'www.domain.hu'
http_basic_authenticate_with name: "stuff", password: "boda"
elsif domain == 'www.domain.com'
http_basic_authenticate_with name: "stuff", password: "boda"
else
end
end
TIA!
答案 0 :(得分:1)
这是有用的:
在应用控制器中:
var d1 = new Date("2015-11-22"); // start date
var warranty_value = 24; // warranty value
d1.setMonth(d1.getMonth() + warranty_value); // this will give you end date by adding warranty value to start date
答案 1 :(得分:0)
NoMethodError (undefined method `http_basic_authenticate_with' for #
< StaticPagesController:0x000000090d8de8 >)
这意味着它无法在http_basic_authenticate_with
实例上找到StaticPagesController
方法。
尝试在控制器中加入ActionController::HttpAuthentication::Basic和ActionController::HttpAuthentication::Basic::ControllerMethods模块,然后再次尝试使用http_basic_authenticate_with
方法。