我的设置: 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>
我想在用户按下文本输入框中的回车键时提交一个AJAX post请求。以下是我目前所拥有的不完整的javascript代码:
$('#newsfeed').delegate('.comment_box', 'keydown', function (event){
event.preventDefault();
$.post('/sub_comments', ...);
});
我正在使用delegate
方法,因为<div id='newsfeed'>
的内容可能会被另一个AJAX调用替换掉。我需要的是jQuery post
方法的语法,假设我需要传递一些表单参数,比如说photo_id
等等。假设我有一种方法来访问这些参数的值,那么以Rails期望的方式创建参数的post
调用的语法是什么?
以下是标准的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 |%>
。 我还看了Ryan Bates的railscast,但代码已过时。
respond_to
块,能否解释一下原因?谢谢! - Mario Zigliottorespond_to
和块。如果你想在某种视图文件中构建json(而不是在控制器中),你可以简单地将文件命名为create.json.erb
并编写内容。但是我建议你使用jbuilder gem或一些序列化模式。 - DonPaulie