2015-01-21 1 views
0

레일 응용 프로그램에서 다른 데이터베이스에 액세스하려고하고 SQL 문과 함께 해당 데이터베이스를 쿼리하고 JSON을 반환합니다.SQL 쿼리를 사용하여 다른 데이터베이스에 액세스

기본 데이터베이스와 보조 데이터베이스는 MySQL에서 실행되는 동일한 서버에 있습니다.

datagbase.yml 파일 :

development: 
    adapter: mysql2 
    encoding: utf8 
    database: onlineportal 
    username: root 
    password: 
    host: 127.0.0.1 
    port: 3306 
    socket: 

android_mobile_developement: 
    adapter: mysql2 
    encoding: utf8 
    database: androidchatterdatabase 
    username: root 
    password: 
    host: 127.0.0.1 
    port: 3306 
    socket: 

하지만 컨트롤러에 방법을 구축 :

class RequestsController < ApplicationController 
    def getActivatedFriends 
     @results = User.find_by_sql("SELECT 
             a.id 
            , a.username 
            , a.phoneNumber 
            FROM androidchatterdatabase.users a 
            WHERE phoneNumber in (8754444444) and 
              removed = 0 and 
              is_user = 1;") 

     respond_to do |format| 
      format.html 
      format.json { render json: { friends_match: @results }} 
     end   
     end 

이 단순히 일하는 것이 있는지 확인하기 위해 테스트 할 때 경로 호출 :

localhost:3000/getActivatedFriends/ 
경로에서 516,

: 3000/getActivatedFriends.json.That 방향 버튼 것이다 요청을 전송하는 동안

Missing template requests/getActivatedFriends, application/getActivatedFriends with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. 

답변

1

로컬 호스트로 보내

match '/getActivatedFriends/', to: 'requests#getActivatedFriends', via: 'get' 

오류를 수득 json 요청에 응답하십시오. 기본적으로 HTML 요청에 응답합니다.

SELECT * FROM onlineportal.table 
- or - 
SELECT * FROM androidchatterdatabase.table 

이것이 당신이 찾고있는 무엇인가 :

1

당신은 같은 테이블 전에 데이터베이스 이름을 지정하여 다른 데이터베이스에 액세스 할 수 있습니까? 동일한 서버에 있으면이 구문이 작동합니다.

관련 문제