[英]Rails - call controller from javascript
極端的軌道nooby在這里。 我正在嘗試從javascript文件向控制器進行簡單調用,並且陷入了困境,研究表明我需要ajax請求。 你們能指出我正確的方向嗎?
這是我的控制器-它只是返回一個布爾值
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 / referred_friend.rb
我把它放在路由文件中,但是我猜這也是不正確的
resources :referred_friends do
get :refer_email_exists
end
謝謝你的幫助!
想要的方式是對您的路線進行ajax調用,例如:
$.ajax({
url: "<url route to refer_email_exists>",
success: function(result){
// check result then
alert "That email already exists!"
}
});
簡單的AJAX調用呢?
$.ajax({
url: Routes.test_email_path(email),
type: 'POST'
}).done(function (data) {
// handling success
}).fail(function (data) {
// handling failure
}
路由來自js-routes gem。
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相同的Ajax事件。 這是一個例子。 假設我們有一個列表,只需單擊一下即可刪除。 我們將生成一些這樣的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."
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.