4

我正在按照 rails casts #340 在我的应用程序中实现数据表。

按照所有步骤我得到这个错误:找不到文件'dataTables/jquery.dataTables'

我正在使用 rails 4,我发现教程中提到的一些文件我必须创建,例如 application.css 和 products.js.coffee

宝石文件

gem 'jquery-rails'
group :assets do 
  gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'
  gem 'jquery-ui-rails'
end

应用程序.js

//= require jquery
//= require dataTables/jquery.dataTables
//= require_tree .

应用程序.js.coffee

 /* 
 * This is a manifest file that'll automatically include all the stylesheets available in this directory 
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at 
 * the top of the compiled file, but it's generally better to create a new file per style scope. 
 *= require_self 
 *= require dataTables/jquery.dataTables 
 *= require_tree .  
*/  

和 rails 4 一样,我在 /layouts/application.html.erb 中添加了对样式表的调用

<%= stylesheet_link_tag 'application.css', media: 'all' %>

和 products/index.htm.erb

<table class="table table-normal" id="products" >
  <thead>
    <tr>
                      <td>Code</td>
                      <td>Name</td>
                      <td>Description</td>
                      <td>Price</td>
                      <td>Stock</td>
                      <td>Enabled</td>
                      <td>Company</td>
              </tr>

  </thead>

  <tbody>   

    <% @products.each do |product| %>
      <tr>                          
            <td style="text-decoration: underline;"><%= link_to product.code, edit_product_path(product) %></td>             

            <td><%= product.name %></td>             

            <td><%= product.description %></td>              

            <td><%= product.price %></td>              

            <td><%= product.stock %></td>              

            <td><%= product.enabled %></td>              

            <td><%= product.company_id %></td>              

      </tr>
    <% end %>
  </tbody>
</table>

我在输出中收到此错误

找不到文件“dataTables/jquery.dataTables”(在 ....app/assets/stylesheets/application.css:6 中)

任何想法如何解决这个问题?提前致谢

4

2 回答 2

6

Rails 4 中没有更多的 :assets 组,所以只需从该块中取出宝石。

于 2013-11-01T05:04:29.497 回答
2

看看这个相关的问题。我最近遇到了类似的问题,我的发现可能会对您有所帮助。

我看到你提到你必须创建一个application.css文件,但你没有说明你是否用任何东西填充它。您可以尝试添加:

*= require jquery.dataTables

application.css并包括jquery.dataTables.css.app/assets/datatables 的副本,这会给您额外的好处,即能够设置 DataTables 的样式以匹配您的应用程序的其余部分。

进行这些更改将解决“找不到文件”错误,因为 Rails 正在寻找一个 CSS 文件:a) 不存在;application.css或 b) 在您的文件中指定的位置不存在。

此外,您不应该将 a 添加stylesheet_link_tag到您的application.html.erb文件中。资产管道的全部意义在于 turbolinks 将根据您在application.css.

于 2013-11-18T08:40:40.560 回答