处理控制器操作为JS而不是HTML
所以我有以下forms:
'profile', :action => 'follow_topic'), :remote => true do %> 'link', :onclick => "javascript:document.getElementById('followtopic#{Topic.find(topic_id).identifier}').innerHTML='Following...'" do %> Follow
我试图让控制器将其作为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 ...
或者那种效果。
这个问题是老问题,但是没有答案,我只是在几个小时内遇到同样的问题,所以希望这将有助于将来的某些人。
确保app/assets/javascripts/application.js
包含:
//= require jquery //= require jquery_ujs
并且该erb包含<%= javascript_include_tag "jquery", "jquery_ujs" %>
而不仅仅是标记。
这就是为我解决的问题。
- Heroku问题:您正在寻找的页面不存在
- Omniauth-Facebook回调不会在Rails可安装引擎中初始化
- 如何将paginate与anchor id结合起来
- Rails模式accepted_nested_attributes_for正常工作
- Rails中的OAuth – 谷歌,推特,脸书,连接登录,如stackoverflow登录
- Rails + Heroku:我们很抱歉,但出了点问题
- Gem Load Error是:未定义的方法`type_cast_from_database’用于类`ArJdbc :: MSSQL :: UUIDType’
- 如何获取options_from_collection_for_select的多个字段
- 用回形针的水印