2014-09-11 2 views
0

익스트림 레일 nooby 여기. 자바 스크립트 파일에서 컨트롤러에 대한 간단한 호출을 시도하고 있으며 꽤 고생했습니다. 조사에 따르면 아약스 요청이 필요합니다. 너희들이 나를 올바른 방향으로 가리킬 수 있니? 여기 레일 - 자바 스크립트에서 호출 컨트롤러

내 컨트롤러입니다 - 그것은 단순히 반환하는 부울 여기
class ReferredFriend < ActiveRecord::Base 

def refer_email_exists(email) 
/return a boolean 

내 자바 스크립트입니다 - 분명히 잘못된 구문,하지만 당신은 내 일반적인 생각 얻을

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 gem입니다.

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

할 수있는 방법은 당신이 당신의 경로에 아약스 호출, 같은 것을하게되고 싶어합니다. Rails 문서에서 http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#link-to

link_to은 링크를 생성하는 데 도움을주는 도우미입니다. 생성

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

:

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

당신은 form_for와 같은 아약스 이벤트에 바인딩 할 수 있습니다 그것은 당신이 이런 식으로 사용할 수있는 :remote 옵션이 있습니다. 여기에 예제가 있습니다. 클릭 한 번으로 삭제할 수있는 기사 목록이 있다고 가정 해 보겠습니다.

<%= 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."

: 우리는이 같은 일부 HTML을 생성하는 것
0

레일 AJAX VIA 레일의 컨트롤러 액션을 호출과 같은 원격 작업을위한 버튼 단축 코드를 제공

관련 문제