1

我有一个使用 post 方法调用而不是 get 的视图。但是当我想rails使用I18nand更改视图的语言时change_locale_path(:es)。我有路由问题,因为matches [Get]"/Contacts"没有localhost:3000/contacts使用post.

我的 appllication.html.erb 是:

<li><%= link_to (t ('layouts.language1')) , change_locale_path(:es) %></li>

我的路线文件是:

resources :contacts, only: [:new,:create]
get 'gmm/home' 
get 'gmm/about'
get 'gmm/services'
get 'gmm/contact'
get '/change_locale/:locale', to: 'settings#change_locale', as: :change_locale

我也尝试将它添加到路由文件中。

match ':controller/:action' ,via: [:get,:post]
4

1 回答 1

0

您可以添加method: :post发送请求作为帖子。

<li><%= link_to (t ('layouts.language1')) , change_locale_path(:es), method: :post %></li>

其次:如果您在/contacts页面上并且想要更改语言环境。您也可以使用 ajax 发送更改语言环境请求。

使用 ajax 发送请求:

<li><%= link_to (t ('layouts.language1')) , change_locale_path(:es), method: :post, remote: true %></li>
于 2016-01-05T13:38:03.107 回答