[英]Rails render_to giving 406 not acceptable error
因此,我一直在试图纠正隐藏推文的选项。 它曾经工作过一次,但由于当时我没有保存它,所以无论采取什么方法,我都迷失了方向。
我的功能非常简单,您单击“隐藏”即可隐藏一条推文。 这就是我在控制器中所拥有的;
def hide
@newtweet = Newtweet.find(params[:id]).update_attribute(:stauts, 'new')
respond_to do |format|
format.js {flash[:notice] = "We've archives your tweet for later."}
end
end
这是我链接所需要的;
<%= link_to "hide", hide_url(:id => tweetsy.id), :class => "btn btn-warning btn-sm hideit hidden-xs", :remote => true %>
最后,这是我该链接的路线;
match '/dashboard/hide/:id' => 'dashboards#hide', :as => :hide
我已经将def hide放在我的仪表板控制器中。
respond_to do |format|
end
甚至...这都给我
Completed 406 Not Acceptable in 8ms (ActiveRecord: 1.8ms)
不知道,我以前是怎么工作的,我要拔头发了。 如果我添加format.js ..同样的东西。 如果我删除
respond_to do |format|
end
一切正常..即使上面留下了它,它仍然隐藏了,但是我得到了一个空白屏幕,而不是一个漂亮的ajax。
我相信,这是一个错误的轨道,因为我碰到的JSON调用同样的事情(如记录在这里 )甚至用正确的路线。
如果您尝试使用本地URL显式调用链接以进行隐藏,并在末尾带有JS扩展名,请查看是否停止收到406错误。
<%= link_to "hide", "/hide.js?id=" + tweetsy.id.to_s, :class => "btn btn-warning btn-sm hideit hidden-xs", :remote => true %>
我知道这似乎是一种hack,但是由于JSON的类似问题,我在几次场合都收效甚微。 也许其他人对URL路径上完全合格的.js或.json的回答会有所作为。 或者如何在路线本身中进行更改。
为了最后确定,请确保正确设置了所有jQuery文件,并且它们的所有集合都在您的适当区域内。 就我而言,我需要以下内容来使所有respond_to
正常工作。 我知道,我知道,我很傻。
您的Application.js应该具有这些。
/= require jquery
//= require jquery_ujs
//= require jquery.ui.touch-punch
//= require_tree .
其他所有Gem明智的选择都应该在您的Gemfile中或手动安装。 感谢所有人在这一方面的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.