我有一个在双击列表项后调用的 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/