다른 데이터베이스 및 테이블에 일회성 쿼리 만들기
옆에 워드프레스 블로그 셀로트가 있는 레일스 앱이 있습니다(/blog에서 완전히 별도로).
고객이 레일즈 앱 메인 홈페이지의 최신 블로그 게시물을 원해서 워드프레스 데이터베이스에 일회적인 mysql 쿼리를 해야 합니다.레일 앱에서 이걸 어떻게 해야 할까요?워드 프레스는 데이터베이스 측면에서 레일과 완전히 분리되어 있습니다.
건배.
동일한 데이터베이스 자격 증명과 동일한 MySQL 서버를 사용하여 액세스할 수 있다고 가정하면 가장 쉬운 방법은 데이터베이스와 테이블을 지정하는 쿼리를 실행하는 것입니다.FROM
쿼리의 절은 다음과 같습니다.
ActiveRecord::Base.connection.select_one(
"SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")
select_one
열 해시를 값으로 반환합니다.사용할 수 있는 방법에 대한 자세한 내용은connection
object, 이 설명서 참조.
두 번째 옵션은 ActiveRecord의 하위 클래스를 생성하고 호출하는 것입니다.establish_connection
:
class Blog < ActiveRecord::Base
establish_connection :blog
def self.most_recent_post
connection.select_one("SELECT * FROM posts ...")
end
end
당신은 또한 다음과 같이 할 필요가 있을 것입니다.blog
당신의 데이터베이스 항목database.yml
파일. 자세한 내용은 establish_connection을 참조하십시오. 유감스럽게도 이런 식으로 사용하는 것은 소스 코드를 봐야 알 수 있습니다.establish_connection
.
그러면 다음과 같이 쿼리에서 블로그 데이터베이스 연결을 사용할 수 있습니다.
Blog.connection.select_one("SELECT * FROM posts ...")
이렇게 하면 좋은 점은 위에서 한 것처럼 (블로그 클래스에서) 데이터를 가져올 수 있는 방법을 정의할 수 있다는 것입니다.
Rails 2.x 또는 3.x에서는 이 두 가지 전략이 모두 잘 작동합니다.
언급URL : https://stackoverflow.com/questions/3958402/make-a-one-off-query-to-a-different-database-and-table
'programing' 카테고리의 다른 글
워드프레스 메뉴-워커에서 ACF 객체 (0) | 2023.10.29 |
---|---|
com. mysql. jdbc.Mysql Data Truncation:데이터 잘라내기:데이터가 너무 길어서 ' column_name' 열에 사용할 수 없습니다. (0) | 2023.10.29 |
무엇이 단편적이고 왜 중요합니까? (0) | 2023.10.29 |
py.test: 오류: 인식할 수 없는 인수: --cov=ner_brands --cov-report=term-missing --cov-config (0) | 2023.10.29 |
url 변경 시 Angular UI-Router open modal window (0) | 2023.10.29 |