所以我有以下形式:
<%= form_tag url_for(:controller => 'profile', :action => 'follow_topic'), :remote => true do %>
<%= hidden_field_tag :topic_id, topic_id %>
<%= content_tag :button, :class => 'link', :onclick => "javascript:document.getElementById('followtopic#{Topic.find(topic_id).identifier}').innerHTML='Following...'" do %> Follow <% end %>
<% end %>
我试图让控制器将其作为 JS 而不是 HTML 进行处理。有趣的是,我在应用程序的另一个地方有一个与此完全相同的表单,它似乎工作正常,并且控制器定义是相同的。不太能弄清楚问题所在。关于我应该首先检查什么有什么想法吗?
def follow_topic
@topic = Topic.find(params[:topic_id])
current_user.follows << @topic
respond_to do |format|
format.js
end
end
你做对了,只是你的 format.js 没有做任何事情。您对提交的表单有何期望?您期望得到什么回报? json 或 http 响应 200?
在 format.js 中指定,如下所示:
...
respond_to do |format|
format.js { render :nothing => true, :response => :ok if current_user.follows << @topic }
end
...
或类似的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)