在rails 4.2.6中的ruby路由问题?

时间:2016-06-20 08:43:35

标签: ruby-on-rails ruby ruby-on-rails-4

当我尝试在Windows 7中执行销毁操作时,我收到了:

Started GET "/stylesheets/default.css" for ::1 at 2016-06-20 13:52:53 +0530
ActionController::RoutingError (No route matches [GET] "/stylesheets/default.css"):

Started GET "/javascripts/default.js" for ::1 at 2016-06-20 13:52:59 +0530
ActionController::RoutingError (No route matches [GET] "/javascripts/default.js"):

3 个答案:

答案 0 :(得分:0)

请求的类型,即delete,无关紧要。

修改:=================
您的错误是由于页面stylesheet_link_tag上的views/layouts/application.html.erb看起来像这样:

<%= stylesheet_link_tag "default", media: "all" %>

default.css中的assets/stylesheets名称中没有文件 - 可能默认文件application.css包含css文件的清单。
====================

rails asset pipeline将清单文件assets/stylesheets/application.css中列出的所有css文件合并到一个大文件中,最小化它,然后在加载视图时将单个css文件发送到浏览器。所有js文件都会发生同样的事情。要正确链接到单个最小化的css文件和单个最小化的js文件,views/layouts/application.html.erb文件应如下所示:

<!DOCTYPE html>
<html>
<head>
  <title>My App</title>
  <%= stylesheet_link_tag "application", media: "all" %>  #<****HERE
  <%= javascript_include_tag "application" %>             #<****HERE
  <%= csrf_meta_tags %>
</head>
<body>

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>


<div>
  <%= yield %>
</div>

<%= debug params %>
<%= debug session[:allowed] %>

</body>
</html>

当您在浏览器中加载页面时,您将在服务器窗口中看到如下命令:

Started GET "/assets/cats.css?body=1" for 127.0.0.1 at 2016-06-20 04:06:19 -0600


Started GET "/assets/cats.js?body=1" for 127.0.0.1 at 2016-06-20 04:06:19 -0600

可以 使用路径:

/stylesheets/default.css
如果文件是<{1}},请

stylesheet_link_tag

存在。根据{{​​3}},您还必须添加:

public/stylesheets/default.css

config.serve_static_files = true - 但我发现开发不需要它,因此可能需要进行生产。

服务器窗口不显示位于config/application.rb目录中的css文件的请求,但您可以打开Web检查器并检查网络活动,并看到您的浏览器确实发送了请求。

答案 1 :(得分:0)

您是否已经提供了执行删除操作的方法,因为我认为如果您没有提供确切的方法,如果您的方法是DELETE,它将重定向到其他一些路径。如果您可以提供您正在使用的语法,则解决此问题会更有帮助。例如: -

&lt;%= link_to&#39;&#39;,your_action_path(object.id),:class =&gt;&#34; btn btn-danger fa fa-trash-o fa-1x&#34;, :style =&gt;&#34; margin-top:4px&#34;,:confirm =&gt;&#39;您确定&#39;,method =&gt; :删除%&gt;

答案 2 :(得分:0)

使用“应用程序”而不是“默认”     视图/布局/ application.html.erb

<%= stylesheet_link_tag "application", media: "all" %>