【问题标题】:Making jeditable inline edit working with Rails select使用 Rails 选择可编辑的内联编辑
【发布时间】:2011-11-04 02:31:31
【问题描述】:

我正在尝试将 jquery jeditable 内联编辑功能与 Rails 一起使用。文档 (http://www.appelsiini.net/projects/jeditable) 中的大多数示例都是针对 PHP 的,因此需要一些有关 Rails 的帮助。这就是 PHP 使用下拉菜单进行内联编辑的方式:

<?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 希望我能得到我需要的东西。我确实接近了,得到了“us”:“usa”,“fr”:“france”,“gr”:“greece”,其中视图呈现有问题。基本上这种哈希方法看起来很蹩脚,希望有更好的方法来做到这一点。

【问题讨论】:

  • 您希望它如何显示? (即“us”:“usa”,“fr”:“france”,“gr”:“greece”示例具体有什么问题)?
  • 你让它工作了吗?我的回答有帮助吗?

标签: ruby-on-rails


【解决方案1】:

如果你需要它是一个值数组,你可以尝试一个数组:

@countries = Country.find(:all, :select => "name,code").map {|c| [c.name,c.code] }
==> [["us","usa"], ["fr","france"], ["gr","greece"]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2014-11-06
    • 2023-03-17
    相关资源
    最近更新 更多