我有一个jQuery函数,在列表项双击后调用.
应用程序/资产/ Java脚本/瓦/ tile.js
$('#list > li').dblclick(function(){ // styling $(this).toggleClass('liked'); // pass ID to controller var movie_id = $(this).attr("data-id"); $.getScript("/likes.js"); });
接下来将一些新格式应用于所述项目,我的主要目标是从我喜欢的控制器中创建数据库条目.在这个Railscast中,来自其注释控制器的索引操作将通过这个简单的行调用.
$.getScript("/comments.js");
另外,一些JavaScript从index.js.erb文件中调用.
理解Railscasts中的示例代码的第一个问题是它们如何定义动作.如果我想从我的likes_controller调用动作createLike,我该如何调用它?
其次,到目前为止我的尝试都失败了,因为JavaScript文件都没有加载,并且动作也没有被调用.
不知何故,我感觉到我已经搞砸了路径.我应该在哪里找到应该使用getScript函数调用的JavaScript文件?
档
应用程序/资产/ JavaScript的/喜欢/ index.js.erb的
console.log("Test");
应用程序/控制器/ 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来解决
应用程序/资产/ JavaScript的/喜欢/ index.js.erb的
至
应用程序/视图/喜欢
这是Rails查找要呈现的模板的位置(您的脚本不应由资产管道提供). Rails通过约定解决了这个问题 – 您的应用程序自动路由/喜欢索引操作.
如果您想要更丰富的路线,请使用Rails routing guide生成新路线并将其与Likes控制器中的create_likes操作相匹配.然后,$.getScript( “/ create_likes.js”)会知道在哪里看