2014-09-11 57 views
0

极限导轨nooby在这里。 我想从JavaScript文件做一个简单的调用控制器,并相当卡住,研究表示我需要一个ajax请求。你们能否指引我朝着正确的方向发展?Rails - 来自javascript的呼叫控制器

这里是我的控制器 - 它简单地返回boolean

class ReferredFriend < ActiveRecord::Base 

def refer_email_exists(email) 
/return a boolean 

这里是我的javascript - 显然是不正确的语法,但你让我的总体思路

if ReferredFriend.refer_email_exists(message.get('to_email')) == 'true' 
    alert "That email already exists!" 

到控制器的路线是: app/models/referenced_friend.rb

我把这个放在我的路由文件中,但是我猜这是不正确的

resources :referred_friends do 
    get :refer_email_exists 
end 

感谢您的帮助!

回答

0

简单的AJAX调用怎么样?

$.ajax({ 
    url: Routes.test_email_path(email), 
    type: 'POST' 
}).done(function (data) { 
    // handling success 
}).fail(function (data) { 
    // handling failure 
} 

哪里路线是从js-routes宝石。

1

做的方式要你想要的是让你的路由Ajax调用,这样的:

$.ajax({ 
    url: "<url route to refer_email_exists>", 
    success: function(result){ 
    // check result then 
    alert "That email already exists!" 
    } 
}); 
0

Rails提供按钮的简像调用通过AJAX Rails控制器动作远程操作。来自Rails文档http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#link-to

link_to是帮助生成链接的助手。它有一个:remote选项,您可以使用这样的:

<%= link_to "an article", @article, remote: true %>

产生:

<a href="/articles/1" data-remote="true">an article</a>

您可以绑定到同阿贾克斯事件的form_for。这是一个例子。假设我们有一个只需点击一下即可删除的文章列表。我们会产生一些HTML这样的:

<%= link_to "Delete article", @article, remote: true, method: :delete %> and write some CoffeeScript like this:

$ -> $("a[data-remote]").on "ajax:success", (e, data, status, xhr) -> alert "The article was deleted."