質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.04%

Middlemanでsqlite3からデータを取りたいんですけど・・・

解決済

回答 1

投稿

  • 評価
  • クリップ 2
  • VIEW 1,395

TaskForce

score 11

これまで、Ruby on Railsで作成されたページを、静的なサイトに変更しようと考えています。

ERBなどをそのまま使えることもあり、
静的サイトジェネレータである、middlemanを使ってある程度自動化しようと考えています。

RoRではDBとしてsqlite3を使っているため、それを新たなサイトでもそのまま使おうと思っているのですが、
middlemanの公式にないようで困っています。


middlemanでsqlite3を使う方法を教えて下さい。
お願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

Middleman 限定ではなく、汎用的な方法なのですが、Rails で利用されているActiveRecord を単体で利用することができます

development:
  adapter: 'sqlite3'
  database: './list.db'

require 'active_record'
require 'yaml'


# Define database class
class List < ActiveRecord::Base; end

config = YAML.load_file('./db.yml')

ActiveRecord::Base.establish_connection config['development']


ActiveRecord::Schema.define do
  unless ActiveRecord::Base.connection.tables.include? 'lists'
    create_table :lists do |t|
      t.column :user_name,   :string
      t.column :date_string, :string
    end
  end
end

# Create test data
if List.all.size.zero?
  List.create(user_name: 'TestUser')
end

これを、Middleman の設定ファイルに読み込む記述を追記することで、データベースからデータを取得することが出来ました

簡単にですが以上をまとめて、GitHub にリポジトリを作成してみました
なにか参考になれば幸いです

## Links

gouf/middleman_and_sqlite3
sqlite with activerecord outside rails - Gist
ActiveRecord にテーブル・カラムを用意してもらうメモ - Qiita

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/03/29 02:37

    ありがとうございます。
    早速、自分の環境でも試してみたところ動きそうです。
    データベースのデータ量が多いので、完動したとはまだ言い切れませんが、
    これで、止まっていた作業が動きそうです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる