当前位置:  开发笔记 > 编程语言 > 正文

Ruby on Rails和jeditable(jquery)

如何解决《RubyonRails和jeditable(jquery)》经验,为你挑选了2个好方法。

有没有人得到了jQuery插件jeditable在一个Rails应用程序正常运行.如果是这样,你能否分享一些关于如何设置它的提示?我在创建"submit-url"时遇到了一些麻烦.


IIRC,你不能简单地在javascript中调用ruby代码(请让我错了:-).你的意思是RJS ??? 这不仅限于Prototype吗?我正在使用jQuery.


更新:
呃.....一会儿回答这个问题,同时转向另一个解决方案.但是IIRC我的主要问题如下:

我正在使用RESTful资源.所以,假设我必须为博客建模,因此拥有资源"帖子".如果我想编辑帖子(例如ID为8的帖子),我的更新将通过HTTP发送到带有HTTP动词POST 的URL http://my.url.com/posts/8.但是,此URL是在我的Rails代码中构建的.那么如何将我的submit-url放入我的jQuery代码中?由于这是RESTful代码,因此我的更新URL将随每个帖子而变化.



1> Josh Rickard..:

以下是我使用我的Restful Rails应用程序(2.2.2)连接JEditable(1.6.2)的方法:

内联表格:

<%= h( @email.name ) %>
$('#email_name').editable( <%= email_path(@email).to_json %>, { name: 'email[name]', method: 'PUT', submitdata: { authenticity_token: <%= form_authenticity_token.to_json %>, wants: 'name' } });

控制器:

def update
  @email = Email.find( params[:id] )
  @email.update_attributes!( params[:email )
  respond_to do |format|
    format.js
  end
end

update.js.erb

<%=
    case params[:wants]
    when 'name' then h( @email.name )
    # add other attributes if you have more inline forms for this model
    else ''
    end
%>

这个switch语句有点笨拙.如果ajax请求成功并且没有返回任何内容,那么如果JEditable默认只保存提交的值,那将是很好的.



2> Sebastian..:

请原谅我现在提出这个问题,但我只是找时间再次查看我的代码.我想我通过以下javascript(我在rails中的application.js)解决了我的问题:

jQuery(document).ready(function($) {

$(".edit_textfield").each( function(i) {
  $(this).editable("update", {
         type      : 'textarea',
         rows      : 8,
         name : $(this).attr('name'),
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : "",
         tooltip   : 'Double-click to edit...'
     })
 });
});

如果您的Controller URL是RESTful,这是有效的.


它如何知道要提交的URL?
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有