繁体   English   中英

Rails render_to给406不可接受的错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM