Мне нужно передать параметры через javascript обратно на сервер. На данный момент я прохожу их в JavaScript следующим образом:Rails: Pass Params Through Ajax
sendParams("<%= params[:q].to_json %>");
А затем отправить их обратно, как это:
function sendParams(q){
$.ajax({
url: '/mymodel/myaction',
type: 'post',
data: {'q':q},
contentType: 'json'
});
}
В моем контроллере, я стараюсь использовать их, как и в любом другом Params:
MyModel.where(params[:q])
Но PARAMS возвращаются пустыми, даже если поджигатель показывает это на вкладке POST:
q=%7B%26quot%3Bc%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Ba%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Bname%26quot%3B%3A%26quot%3Btitle%26quot%3B%7D%7D%2C%26quot%3Bp%26quot%3B%3A%26quot%3Bcont%26quot%3B%2C%26quot%3Bv%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Bvalue%26quot%3B%3A%26quot%3B2%26quot%3B%7D%7D%7D%7D%2C%26quot%3Bs%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Bname%26quot%3B%3A%26quot%3Bvotes_popularity%26quot%3B%2C%26quot%3Bdir%26quot%3B%3A%26quot%3Bdesc%26quot%3B%7D%7D%7D
Любая идея, почему эта информация не обрабатывается предложением where? Что я могу сделать, чтобы снова обновить параметры Rails?
UPDATE:
Started POST "/publications/search?scroll=active&page=6" for 127.0.0.1 at 2013-0
2-12 22:55:24 -0600
Processing by PublicationsController#index as */*
Parameters: {"scroll"=>"active", "page"=>"6"}
UPDATE 2:
Проблема, по-видимому, вытекающих из contentType
. Когда я удаляю его, тогда q
отправляется как параметр Rails. К сожалению, до сих пор q
в формате JSON, в результате ошибки:
undefined method `with_indifferent_access' for #<String:0x686d0a8>
Как я могу преобразовать JSON в Params хэш?
Можете ли вы отобразить запрос и параметры, зарегистрированные в файле development.log. Я предполагаю, что это dev env. – manoj
Хороший улов. «q» вообще не отображается в параметрах. Я предполагаю, что это должно произойти, даже если оно находится в почтовых данных? – nullnullnull