【发布时间】:2014-02-10 22:12:55
【问题描述】:
我正在尝试使用 ajax 进行简单的 post call,表单包含一个语言标识符、一个 i18n 键和一个字符串翻译值。
我的路线设置如下:
post '/translate/' => 'pages#translate'
出于测试目的,在PagesController::translate 我只是调用:
render json: params
在我的咖啡脚本中,我使用了以下代码:
console.log $form.serialize()
$.post $form.attr('action'), $form.serialize(),
(json) ->
console.log json
return
, 'json'
我正在使用以下 HAML 来输出表单:
%div#translation-control
= form_tag '/translate/', :method => "post" do
= hidden_field_tag :translationlang, I18n.locale
= select_tag :translationkey, options_for_select(get_all_translations().invert())
= text_area_tag(:translationvalue, '', :rows => '1')
= button_tag "Add"
在我的日志中我看到:
translationlang=en&translationkey=home.welcome&translationvalue=Welcome+to+this+site
Object {
action: "translate"
controller: "pages"
translationlang: "en"
}
我尝试了几种不同的方法来设置我的路线,包括:
post '/translate/:translationlang/:translationkey/:translationvalue' => 'pages#translate'
match '/translate/:translationlang/:translationkey/:translationvalue' => 'pages#translate',
:constraints => { :translationkey => /[\w\_\-\.]+/, :translationvalue => /.*/ },
via: [:post]
但似乎没有任何效果。为什么translationkey 和translationvalue 没有被传递给控制器?
【问题讨论】:
标签: ruby-on-rails post ruby-on-rails-4