0
我試圖做用ajax簡單的電話後,表格中有一個語言標識,一個國際化的關鍵,和一個字符串翻譯值之後,控制器。價值沒有得到通過POST請求
我有我的路線設置如下:
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
沒有傳遞給控制器?
謝謝,我看了看請求和參數沒有得到通過,jQuery似乎搞亂了序列化方法。不太確定發生了什麼,但在$ .post方法之前調用了serialize()(而不是直接將其傳入)以及正確的參數。 – Godwin