rubypostgresqlsinatrasinatra-activerecord

How add line to PostqreSQL use activerecord-sinatra?


I installed PostgreSQL, later

1 - Installed gem pg

2 - Installed gems:

gem install activerecord 
gem install sinatra-activerecord 
gem install rake

3 - I created connect to database to file app.rb

# app.rb 
configure :development do set :database, {adapter: "postgresql",  encoding: "unicode", database: "your_database_name", pool: 2, username: "your_username", password: "your_password"}
end

configure :production do
  set :database, {adapter: "postgresql",  encoding: "unicode", database: "your_database_name", pool: 2, username: "your_username", password: "your_password"}
end

4 - Created model to file app.rb

class Article < ActiveRecord::Base
end

5 - Created migration to Rakefile

require 'sinatra/activerecord'
require 'sinatra/activerecord/rake'
require './app'

6 - rake db:create_migration NAME=create_articles

7 - In new created by file migration

class CreateArticles < ActiveRecord::Migration
    def change
        create_table :articles do |t|
          t.string :title
          t.string :content
          t.boolean :published, :default => false
          t.datetime :published_on, :required => false
          t.integer :likes, :default => 0
          t.timestamps null: false
        end
      end
    end 

8 - I fulfilled commands db:create and rake db:migration

Database created, The database in the psql console is displayed. how about now added line to database, in sinatra?


Solution

  • For create new article use:

    Article.create(title: your_title, content: your_content, published: true, published_on: Time.now)
    

    For find article by ID:

    Article.find(id)
    

    For update article:

    article = Article.find(id)
    article.update(title: your_title, content: your_content, published: true, published_on: Time.now)
    

    For delete article record:

    article = Article.find(id)
    article.destroy
    

    AR documentation:

    1. for persistence - https://www.rubydoc.info/gems/activerecord/ActiveRecord/Persistence

    2. For finding: https://www.rubydoc.info/gems/activerecord/ActiveRecord/FinderMethods

    3. For complex queries: https://www.rubydoc.info/gems/activerecord/ActiveRecord/QueryMethods