1

因此,通过添加,我可以很好地在开发中工作

<%= javascript_include_tag 'ratyrate.js', "data-turbolinks-track" => false %>

我的观点。在此之前,星星只会在直接访问 url 或刷新页面时加载。

现在我在heroku上部署我的应用程序时遇到了完全相同的问题(通过链接访问页面时没有加载星号)!

我希望这是足够的信息(很高兴提供更多信息)并且有人曾经遇到过这个问题/有任何想法!谢谢!

已解决 - 查看答案

4

3 回答 3

5

所以问题是我忘了跑步rake assets:precompile。问题中提到的发展解决方案应该有效。

解决方案

在您的视图中添加<%= javascript_include_tag 'ratyrate.js', "data-turbolinks-track" => false %>头部(似乎运行得更快)或身体标签。

还要添加Rails.application.config.assets.precompile += %w( ratyrate.js ) config/initializers/assets.rb

然后确保你跑rake assets:precompile,以避免看起来像我一样傻!

希望这可以帮助某人:)

于 2015-05-17T19:57:04.560 回答
2

我的解决方法:

jquery.raty.js

jquery.raty.js用asset_path重命名jquery.raty.js.erb和替换图像选项,例如:

cancelOff : 'cancel-off.png'

会变成

cancelOff    : '<%= asset_path('cancel-off.png') %>'

raty_helper.rb

我已将rating_for方法从 raty 助手移动到我的助手文件之一,无论如何我都必须覆盖一些东西,比如不允许用户对自己没有开箱即用的评价。

我在这个文件中所做的更改:

star_path    = options[:star_path]    || ''
star_on      = options[:star_on]      || image_path('star-on.png')
star_off     = options[:star_off]     || image_path('star-off.png')
star_half    = options[:star_half]    || image_path('star-half.png')
cancel_on    = options[:cancel_on]    || image_path('cancel-on.png')
cancel_off   = options[:cancel_off]   || image_path('cancel-off.png')

基本上我删除了/每个图像名称之前的,例如:

star_on      = options[:star_on]      || image_path('/star-on.png')

现在我可以推送到heroku,它可以按预期工作,而无需在我的本地机器上运行资产预编译并将其全部推送到heroku。

于 2015-05-30T17:41:02.717 回答
0

发生这种情况是因为图像位置没有引用资产管道。我必须创建一个新的帮助文件来覆盖 rating_for 方法以从资产管道中提取图像。

  1. 在config/initializers中创建一个新的帮助文件 ( raty_helper.rb )
  2. 将“模块 RatyHelper”添加到新文件的第 1 行
  3. 将第 2 行到第 144 行从https://github.com/wazery/ratyrate/blob/master/lib/ratyrate/helpers.rb复制到您的新助手中。
于 2017-04-20T19:25:21.783 回答