ruby-on-rails - getScript jQuery 路径不起作用/Ruby on Rails

标签 ruby-on-rails ruby ruby-on-rails-3 jquery getscript

我有一个在双击列表项后调用的 jQuery 函数。

app/assets/javascripts/tile/tile.js

$('#list > li').dblclick(function(){
  // styling
  $(this).toggleClass('liked');

  // pass ID to controller
  var movie_id = $(this).attr("data-id");
  $.getScript("/likes.js");
});

除了将一些新格式应用于所述项目之外,我的主要目标是从我的 like Controller 创建一个数据库条目。在这个Railscast他们的 comments Controller 中的 index 操作通过这一行被调用。

$.getScript("/comments.js");

此外,一些 JavaScript 从 index.js.erb 文件中调用。

我理解 Railscasts 示例代码的第一个问题是它们如何定义操作。如果我想从我的 likes_controller 调用操作 createLike 我该如何调用它?

其次,到目前为止,我的尝试都失败了,因为既没有加载 JavaScript 文件,也没有调用操作。

不知何故,我感觉我弄乱了路径。我应该在哪里找到应该使用 getScript 函数调用的 JavaScript 文件?

文件

app/assets/javascripts/likes/index.js.erb

console.log("Test");

app/controllers/likes_controller.rb

class LikesController < ApplicationController
  protect_from_forgery

  def index
    Like.create(:user_id => current_user.id, :item_id => params[:id])
  end
end

最佳答案

我相信执行问题可以通过将 index.js.erb 从

app/assets/javascripts/likes/index.js.erb

应用/ View /喜欢

这是 Rails 查找要呈现的模板的地方( Assets 管道不应提供您的脚本)。 Rails 通过约定来解决这个问题——您的应用程序会自动将/likes 路由到 index 操作。

如果您想要更多信息的路线,请使用 Rails routing guide生成新路由并将其与 Likes Controller 中的 create_likes 操作匹配。然后, $.getScript("/create_likes.js") 会知道去哪里看

关于ruby-on-rails - getScript jQuery 路径不起作用/Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17732262/

相关文章:

ruby-on-rails - 无法使 compass +守卫+萨斯工作

javascript - 得到一个未终止的字符串文字错误..我可以让它通过,但无法弄清楚为什么

ruby-on-rails - Carrierwave - 未定义方法 `mount_uploaders'

ruby - Ruby 如何使#initialize 私有(private)化?

ruby-on-rails - 请求 URI 过大错误 - 摆脱 GET?

ruby-on-rails - Rails、Thinking_sphinx、Delta 索引

ruby-on-rails - 使用 Ruby on Rails 在文本区域中保留换行符

ruby - 为每个循环制作每个循环

ruby-on-rails - 在 rails 4 中重构一个大的 routes.rb 文件

mysql - 异常的 ActiveRecord 行为