레일트와 달리 Sinatra 프레임 워크는 ORM을 제공하지 않습니다. 이 경우 Sinatra 앱에서 DB에 대해 어떻게 이야기합니까? 또는 Sinatra는 DB를 사용하지 않는 앱에서만 사용할 수 있습니까?Sinatra를 사용하는 동안 데이터베이스와 대화하는 가장 좋은 방법은 무엇입니까?
답변
ActiveRecord가 마음에 들면 사용하십시오. 또는 다른 것. 예를 들어, Datamapper. SQLite는과 AR,이 작품 :
require 'rubygems' # may not be needed, depending on platform
require 'sinatra'
require 'active_record'
class Article < ActiveRecord::Base
end
get '/' do
Article.establish_connection(
:adapter => "sqlite3",
:database => "hw.db"
)
Article.first.title
end
당신이시나를 사용하는 경우, 내가보기 엔 충분히 DataMapper을 권장하지 않습니다. 필자는 ActiveRecord가 붙어있는 몇 개의 Rails 애플리케이션을 가지고 있으며, 그 단점과 디자인 결함을 끊임없이 저주하고 있습니다. Sinatra를 사용 중이라면 DataMapper는 매우 실용적인 선택입니다.
require "rubygems"
require "sinatra"
require "datamapper"
DataMapper.setup(:default, "sqlite3::memory:")
class Post
include DataMapper::Resource
property :id, Integer, :serial => true
property :title, String
end
Post.auto_migrate!
first_post = Post.new
first_post.title = "First!"
first_post.save
get "/" do
Post.get(1).title
end
DataMapper를 살펴 보겠습니다. 코드 샘플을 보내 주셔서 감사합니다. –
'DataMapper.setup (: default, "sqlite3 :: memory")'을 사용하면 im-memory db입니까? 어떻게 그것을 디스크에 유지하거나 기존 sqlite db 파일을 어떻게 열겠습니까? – LoveMeSomeCode
'DataMapper.setup (: default, "sqlite3 : path/to/db/file.db")' –
데이터베이스와 통신하는 방법은 ORM 또는 NoSQL 어댑터 중 하나를 선택할 수 있습니다.
예를 들어, 원래 블레이크 Mizerany,시나
의 창조자 그것은 액티브 도우미 방법과 레이크 작업
가 : 가능한 많은 옵션이 그들 중 일부는시나 위해 특별히 만들어진이 있습니다
다른 옵션은 Sinatra Sequel Extension입니다.
이 작은 확장은 데이터베이스 구성, 마이그레이션 및 Sequel 어댑터를 Sinatra에 추가합니다.
또는 sinatra-redis 또는 sinatra-mongo 등. 원하는 것을 검색하십시오.
독립적 인 라이브러리를 자유롭게 사용할 수도 있지만 Sinatra Recipes on databases을 확인하십시오. Sinatra에서 널리 사용되는 데이터베이스 매퍼를 사용하는 방법에 대한 몇 가지 예가 나와 있습니다. 거기에 언급되어 있지만, 이것에 대한 권장 관례는 DataMapper를 사용하는 것입니다. 나는 이것이 Sinatra 자체에서 아무것도 제시하지 않았기 때문에 이것이 단순한 선호라고 생각합니다.
- 1. . NET에서 SQLite와 대화하는 가장 좋은 방법은 무엇입니까?
- 2. mongoDB에서 datetime을 사용하는 가장 좋은 방법은 무엇입니까
- 3. 사전 항목을로드하고 사용하는 가장 좋은 방법은 무엇입니까?
- 4. 안드로이드에서 데이터베이스와 통신하는 더 좋은 방법은 무엇입니까?
- 5. grails에서 서비스를 사용하는 가장 좋은 방법은 무엇입니까
- 6. Asp.net에서 JQuery를 사용하는 가장 좋은 방법은 무엇입니까
- 7. WEBSERVICES에서 JPA를 사용하는 가장 좋은 방법은 무엇입니까?
- 8. 조립품 속성을 사용하는 가장 좋은 방법은 무엇입니까?
- 9. favicon을 사용하는 가장 좋은 방법은 무엇입니까?
- 10. XML을 사용하는 가장 좋은 방법은 무엇입니까?
- 11. 점 슬래시를 사용하는 가장 좋은 방법은 무엇입니까?
- 12. Generic Comparer을 사용하는 가장 좋은 방법은 무엇입니까
- 13. 구성 파일을 사용하는 가장 좋은 방법은 무엇입니까?
- 14. 기존 프로젝트에서 ORM을 사용하는 가장 좋은 방법은 무엇입니까
- 15. EC2 가용 영역을 사용하는 가장 좋은 방법은 무엇입니까?
- 16. CustomViewData에 가장 좋은 방법은 무엇입니까?
- 17. 서버 데이터베이스와 클라이언트 데이터베이스를 동기화하는 가장 좋은 방법
- 18. 일정 기간 동안 이동 거리를 계산하는 가장 좋은 방법은 무엇입니까?
- 19. 디버깅하는 동안 DataTable을 시각화하는 가장 좋은 방법은 무엇입니까?
- 20. Webkit을 퍼가는 동안 페이지를 조작하는 가장 좋은 방법은 무엇입니까?
- 21. .NET 타이머 : X 초 동안 알림을받는 가장 좋은 방법은 무엇입니까?
- 22. WCF가이 웹 서비스와 대화하는 방법은 무엇입니까?
- 23. 다른 데이터베이스와 함께 ASPNETDB를 사용하는 모범 사례
- 24. jQuery로 양식을 채우는 가장 좋은 방법은 무엇입니까?
- 25. sinatra를 websocket 서버로 실행하는 방법은 무엇입니까?
- 26. PHP에서 가장 좋은 방법은 무엇입니까?
- 27. MBean의 가장 좋은 방법은 무엇입니까?
- 28. MATLAB에서 가장 좋은 방법은 무엇입니까?
- 29. LINQ 쿼리를 사용하는 동안 응용 프로그램 성능을 향상시키는 가장 좋은 방법은 무엇입니까?
- 30. XSLT를 사용하는 가장 좋은 시나리오는 무엇입니까
'activerecord'가 사용되지 않으므로 대신 'require active_record'를 사용하십시오. – tks