jrails in_place_editor

换成jrails以后,基本的功能都有,但是今天突然想用到in_place_editor,却发现没有这个功能。于是乎,百度伺候,无解- -。那就只有google了。最后发现了rails_in_place_editing这个很小的插件:http://github.com/rakuto/jrails_in_place_editing/tree/master
基本用法和原来的in_place_editor一样。
但是这个先得把文件夹里的javascript下的文件拷到public/javascript下。不知道是不是我的问题,反正不拷过去我没用上。
用来text一切正常。我的应用是要用作select。记得rails recipes里,第二节是讲自己写一个select的helper。看了看。麻烦……再回头看看插件里的jrails_in_place_macros_helper.rb,发现居然支持select
例子

class BlogController < ApplicationController
in_place_edit_for :post, :title
end
# View
<%= in_place_editor_field :post, :title %>

用作select就这样:

<%= in_place_editor_field :post, :title, {}, {:field_type => 'select' , :select_options => ["title1", "title2", "title3"]} %>

按来说没有错,但是却没有select选项。仔细查看jrails_in_place_macros_helper.rb。发现相关联的是这句

js_options['select_options'] = "'" + (options[:select_options].is_a?(Array)?
options[:select_options].join(',') : options[:select_options]) + "'" if js_options[:options].to_s == 'select'

怪不得得不到选项,js_options[:options]怎么都是空,查看上下文,也没有:options这个选项,估计是作者把:field_type错写成:options了。
直接改成 if options[:field_type] == 'select' 就OK了
重启工程。就能够顺利使用in_place_editor_field的select了

再说说该中文提示,一定要在public/javascript中修改jquery.inplace.pack.js中的文字。虽然另一个文件jquery.inplace.js中华丽的定义了很多settings。但是其实都没用到(至少我这样认为,改了没效果)
阅读更多
想对作者说点什么?