我感兴趣的是在 JQuery 和 RoR 中实现一个基本版本的链接预览工具(类似于 Facebook 的)。用户在输入字段中键入 url。一个 jquery 函数监视输入的内容(使用 keyup),当输入一个有效的 url(没有用户提交任何内容)时,jquery 函数调用一个 rails 函数,该函数使用 Nokogiri gem 搜索并返回预览内容(例如标题,任何图像等)。然后将该内容返回给 jquery 函数并显示在输入框下方。
在这一切中我不清楚的是数据如何从 jquery 函数传递到 rails one 并返回。
为了使事情具体化,假设我只想检索正在输入的 url 的标题。
在我的 JQuery 函数中,我使用 keyup 来监视空格、返回等。此时我没有验证输入的 url(我可以稍后再做)
var text;
$("#text").keyup(function(e) {
if(e.which == 13 || e.which == 32 || e.which == 17 || ) {
text = $("text").val();
$.get('/linkPreview', {text: text}, function(answer) {
$("previewTitle").html(answer);
}
)
}
这是我不确定如何进行的地方。我正在使用 .get Jquery 方法(这是正确的方法吗?)来调用 rails 函数,并将文本作为键入的 url 传递。
然后,我将“/linkPreview”与我的页面控制器中的 linkPreview 操作相匹配,在我的路由文件中:
match '/linkPreview', :to => 'pages#linkPreview'
我也不确定在 rails 函数中读取和传递 JSON 数据。我正在尝试使用 respond_to 和 respond_with 函数,但不确定这是否正确(我使用 Nokogiri gem 从 url 的 html 中提取标题):
def linkPreview
respond_to :json
@url = params[:text]
doc = Nokogiri::HTML(open(@url))
@title = doc.css(title)
respond_with(@title)
end
由于我是 RoR 和 JQuery 的新手,我将非常感谢有关从 JQuery 调用 rails 函数的正确方法、将 JSON 数据从一个到另一个传递以及我解决这些主题的任何其他资源的任何帮助!我还想知道是否有任何推荐的方法来调试有缺陷的脚本(我的代码显然不起作用,但我不确定从哪里开始寻找错误)。
万分感谢!