Создание кнопки для запроса HTTP GET: проблемы с сохранением локали - PullRequest
0 голосов
/ 01 марта 2012

Я хочу создать кнопку с помощью метода button_to, чтобы перейти на страницу, где можно создать новую дружбу пользователей.

<%= button_to t(:add_friend), new_user_friendship_url(current_user), :method => :get, :class => "btn-success" %>

(я не хочу использовать ссылку, т.е. не использовать link_to, потому что стили кнопок, которые я использую в CSS-фреймворке, выглядят намного лучше, чем ссылки).К сожалению, button_to не добавляет правильный языковой стандарт в качестве параметра URL.Что я могу с этим поделать?

Это мой application_controller.rb, где я устанавливаю локаль для каждого запроса страницы.

class ApplicationController < ActionController::Base
  before_filter :set_locale

  def set_locale
    I18n.locale = params[:locale] || I18n.default_locale
  end

  protect_from_forgery

  def default_url_options(options={})
    logger.debug "default_url_options is passed options: #{options.inspect}\n"
    { :locale => I18n.locale }
  end
end

Спасибо за предложения.

1 Ответ

0 голосов
/ 02 марта 2012

Прежде всего, кнопки должны быть простыми в том же стиле, как и ссылки.

во-вторых, я думаю, что проблема в другом месте вашего кода. если я добавлю это в свое приложение:

= button_to 'blaa', users_path(:locale => 'de')

я получаю форму как:

<form action="/users?locale=de" class="button_to" method="post"><div><input type="submit" value="blaa" /><input name="authenticity_token" type="hidden" value="k4PtVPS041DnTmTqkfh+xBIyFvVJCauenmg233BoLSw=" /></div></form>

и эта кнопка переводит меня на http://localhost:5000/users?locale=de

...