在我的 Rails 应用程序中,我试图在页脚中询问用户他想查看哪个国家/地区(法国/美国/德国...),然后将其存储在 session 中并重新加载他当前所在的页面上。
请注意:我只想重新加载当前页面,但不想在应用程序的 URL 中添加参数(即我不想要 example.com/browser_country=France)。我希望它们保持原样(example.com)。
我怎样才能做到这一点?
这是我的代码,但它不起作用(我是 Rails 新手):
<footer class="footer">
<small>
MySuper Website <br/>
<select name= "browser_country", :onchange => "location.href = '#{current_path}'" >
<option value="">Select Country</option>
<option value="1">France</option>
<option value="2">United States</option>
</select>
</small>
这里,如果 Controller 在/app/controllers/static_pages_controller.rb 上加载页面(主页)
class StaticPagesController < ApplicationController
def home
end
def set_country_into_session
session[:country] = :browser_country # i'm putting in session the country selected in the dropdown
end
end
最佳答案
您需要向此进程添加 ajax 调用。
# your js file
$(function() {
$('select[name="browser_country"]').change(function() {
$.ajax({
url: 'static_pages/set_country_into_session',
data: 'browser_country=' + this.value,
success: function() {
location.reload();
}
});
});
});
# static_pages_controller.rb
def set_country_into_session
session[:country] = params[:browser_country]
render text => :ok
end
关于javascript - 在 session 中传递所选国家/地区(下拉列表)的值,然后重新加载当前页面(Rails 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125613/