Создание редактируемого встроенного редактора с использованием Rails select - PullRequest
1 голос
/ 01 ноября 2011

Я пытаюсь использовать функциональность JQuery Jeditable для встроенного редактирования с Rails. Большинство примеров в документации (http://www.appelsiini.net/projects/jeditable) предназначены для PHP и, следовательно, нуждаются в помощи по Rails. Вот как PHP выполняет встроенное редактирование для использования выпадающего списка select:

<?php
 $array['E'] =  'Letter E'; 
 $array['F'] =  'Letter F'; 
 $array['G'] =  'Letter G'; 
 $array['selected'] =  'F';
 ?>

 $('.editable').editable('http://www.example.com/save.php', { 
     data   : '<?php print  json_encode($array); ?>',
     type   : 'select',
     submit : 'OK'
 });

Чего я не могу добиться, так это как получить данные из модели моих стран для заполнения меню выбора (список стран). В документации сказано, что json кодирует мои данные.

вот моя модель, которую я хочу отобразить в меню выбора.

create_table "countries", :force => true do |t|
 t.string   "code",       :limit => 2
 t.string   "name"
 t.datetime "created_at"
 t.datetime "updated_at"
end

Я хочу использовать поля «имя» и «код» в качестве пары «имя»: «значение» для меню выбора. Сделал это в моем контроллере:

@countries = Country.find(:all, :select => "name,code")

.. приведенное выше дает мне массив типа Country, который я преобразовал в хеш (скажем, x), а затем сделал x.to_json, надеясь, что я получу то, что мне нужно. Я подошел поближе, получил «нас»: «сша», «фр»: «франция», «гр»: «греция», которые при представлении были проблемы с отображением. По сути, этот подход к хешу кажется неубедительным, и он надеялся, что есть лучший способ сделать это.

1 Ответ

0 голосов
/ 03 ноября 2011

Если вам нужно, чтобы это был массив значений, вы можете попробовать массив с:

@countries = Country.find(:all, :select => "name,code").map {|c| [c.name,c.code] }
==> [["us","usa"], ["fr","france"], ["gr","greece"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...