2012-05-08 3 views
2

У меня есть сайт с двумя вариантами рейтинга (Likes and Stars), поэтому я хочу добавить radio_button, чтобы выбрать, какой из них нужно загружать.Rails Radio_button onchange reload

я есть сейчас этот код:

<%= radio_button_tag 'receive_updates', 'no', true %> Likes 
<%= radio_button_tag 'receive_updates', 'no', false %> Stars 

После того, как состояние radio_button изменилось, я хочу, чтобы перенаправить на "root_path".

Мои вопросы,

  • Как я могу перенаправить после изменения состояния без модели?
  • Как я могу контролировать, если есть истины или ложные?

я нашел что-то перенаправлять, как это:

<%= radio_button_tag 'receive_updates', 'no', true , :on_change => root_path%> Likes 

но on_change не работает.

ответ

4

Не уверен, что вы хотите сделать здесь, но, используя Javascript, вы можете перенаправить/пасс Params, когда событие «OnChange» называется так:

<%= radio_button_tag 'receive_updates', 'likes', false %> Likes 
<%= radio_button_tag 'receive_updates', 'stars', false %> Stars 

<script > 
    $(function(){ 
     $("input[name=receive_updates]").change(function(){ 
      var root_path = "<%= root_path %>" 
      var url = root_path + "?receive_updates=" + $(this).val(); 
      window.location.replace(url); 
     }); 
    }); 
</script> 
+0

И как я могу сохранить текущее состояние, является есть возможность сохранить его в контроллере приложения? – Lailo

+0

Вы можете использовать хранилище сеансов, как описано здесь: http://guides.rubyonrails.org/action_controller_overview.html#accessing-the-session – ccyrille

+0

В вашем корневом контроллере это может выглядеть так: 'session [: receive_updates] = params [ : receive_updates], если params [: receive_updates] 'и в представлении' <% = radio_button_tag 'receive_updates', 'нравится', session [: receive_updates] == 'нравится'%> Likes' – ccyrille

Смежные вопросы