所以,我在Rails代码中有2个关注/取消关注窗体。这是这样的在Rails 3中渲染通过.ajax的静态部分
<%= form_tag({:controller => 'profile', :action => 'unfollow_topic' }) do %>
<%= hidden_field_tag :topic_id, @topic.id %>
<button class="question_button" type="submit">Unfollow</button>
<% end %>
这:
<%= form_tag({:controller => 'profile', :action => 'follow_topic' }) do %>
<%= hidden_field_tag :topic_id, @topic.id %>
<button class="question_button" type="submit">Follow</button>
<% end %>
然后,我有这样的javascript代码:
<script type="text/javascript">
$(function(){
$('#follow form').submit(function(e) {
$.ajax({
url: this.action,
type: 'POST',
data: $(this).serialize(),
success: function(response){ $('#follow').html(response); }
});
return false;
});
});
</script>
我的问题是如何从我的控制器返回相应的“跟随/ unfollow“部分用于替换返回的响应。
我现在拥有的是这一点,但它似乎并不工作:
respond_to do |format|
format.html { redirect_to('/' + topic.type + '/' + topic.uri) }
format.js { render :partial => 'unfollow_topic' }
end
但是相反,如果使整个页面,我相信它的实际响应format.html而不是格式。 js有什么想法?
什么是你 '_unfollow_topic.js.erb' 文件?你试过剥离他们的一切,只是把一些警报的JavaScript? '警报(“你好!”);'这可能会告诉你,如果你甚至让你的部分回来。 – ipd
ajax请求通常用于更新页面的一部分正如我从你的问题所理解的,你想用ajax请求更新整个页面它是正确的吗? – Bohdan
也请发布您的日志与此请求的大块 – Bohdan