微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – jQuery发布到Rails

我的设置:Rails 3.0.9,Ruby 1.9.2,jQuery 1.6.2

我有一个表单,显示多个照片和评论用户,我希望实现内联评论.

<div id="newsFeed">    
 <div> 
 <div class="photo_title">Summer 2011</div> 
 <div class="newsFeed_photo"> 
 <a href="..." /></a> 
 </div> 
 <textarea class="comment_Box">Write a comment...</textarea>  
</div> 
<div> 
 <div class="comment_title">Seeing a movie</div> 
 <textarea class="comment_Box">Write a comment...</textarea>  
</div>

我想在用户点击textarea字段中的enter键时提交一个AJAX帖子.这是我迄今为止的javascript(不完整)

$('#newsFeed').delegate('.comment_Box','keydown',function (event){
    event.preventDefault();
    $.post('/sub_comments',...);
  });

我正在使用委托方法,因为< div id ='newsFeed'>内容可以替换为另一个AJAX调用.我需要的是jQuery post方法的语法,假设我需要传递一些表单参数,比如说photo_id等.假设我有一种方法来访问params的值,那么用于创建参数的post调用的语法是什么Rails期待他们

这是标准的Rails位

sub_comments_controller.rb

  def new
    @sub_comment = SubComment.new

    respond_to do |format|
      format.html # new.html.erb
      format.js
    end
  end

另外我也不想使用通常的<%= form_for(@sub_comment,:remote => true)do | f | %GT;对于每一个可以添加的内联评论.我也看了Ryan Bates的railscast,但代码看起来已经过时了.

解决方法

只要在轨道端正确解释,您可以以任何方式设置您的帖子来构建数据,但最佳做法是具有包含所有值的“model-name”对象.

使用Javascript

$.ajax({
    url: "/sub_comments",type: "POST",data: {subcomment: {
             field: val,field2: val,etc... }},success: function(resp){ }
});

轨道

def create
  @sub_comment = SubComment.new params['subcomment']
  if @sub_comment.save
    render :json => { } # send back any data if necessary
  else
    render :json => { },:status => 500
  end
end

原文地址:https://www.jb51.cc/ruby/273988.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐