簡體   English   中英

在會話中傳遞所選國家/地區的值(下拉列表),然后重新加載當前頁面(路軌4)

[英]Pass value of selected country (dropdown) in session and then reload current page (Rails 4)

在我的Rails應用中,我試圖問頁腳中的用戶他想看哪個國家(法國/美國/德國...),然后將其存儲在會話中並重新加載他當前所在的頁面。

請注意:我只希望重新加載當前頁面,但不想在應用程序的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>

如果是在/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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM