刚学 rails,今天尝试 ajax 有些疑惑。 从最简单的案例开始,post 下面是 new.html.erb 的代码
<%= form_for(@post) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :content %><br />
<%= f.text_area :content %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
在 controller 中的 create 方法
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.js {render :layout => false}
format.json { render json: @post}
else
format.html { render action: "new" }
format.js {render :layout => false, :status => 406}
format.json { render :json => {:errors => @post.errors.full_messages.join(','), :status=> :unprocessable_entity} }
end
end
end
post.js 代码
$(function(){
$('#new_post').on('submit', function(event){
$.ajax({
url : $(this).prop('action'),
dataType:'json',
type:'POST',
data: $('#new_post').serializeArray(),
success: function(response){
alert(response);
},
error: function(message){
var error_message = $.parseJOSN(message);
alert(message.errors);
}
})
});
})
ajax 不起作用,但是能够创建一个 post,页面跳转...$.ajax 中的 success 的回调函数也不执行...求指导