Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 2.15 KB | None | 0 0
  1. begin
  2.   require "bundler/inline"
  3. rescue LoadError => e
  4.   raise e
  5. end
  6.  
  7. gemfile(true) do
  8.   source "https://rubygems.org"
  9.   gem 'pry'
  10.   gem "rails"
  11.   gem "pg"
  12.   gem "pg_search"
  13. end
  14.  
  15. require "active_record"
  16. require "action_controller/railtie"
  17.  
  18. ActiveRecord::Base.establish_connection(adapter: "postgresql", database: "railstestapp")
  19. ActiveRecord::Base.logger = Logger.new(STDOUT)
  20.  
  21. ActiveRecord::Schema.define do
  22.   create_table :users, force: true do |t|
  23.     t.string :email
  24.     t.string :name
  25.     t.timestamps
  26.   end
  27.  
  28.   create_table :categories, force: true do |t|
  29.     t.string :name
  30.     t.timestamps
  31.   end
  32.  
  33.   create_table :tickets, force: true do |t|
  34.     t.references :category
  35.     t.references :user
  36.     t.timestamps
  37.   end
  38.  
  39.   create_table :messages, force: true do |t|
  40.     t.references :ticket
  41.     t.text :body
  42.     t.timestamps
  43.   end
  44. end
  45.  
  46. class User < ActiveRecord::Base
  47.   has_many :tickets
  48. end
  49.  
  50. class Category < ActiveRecord::Base
  51.   has_many :tickets
  52. end
  53.  
  54. class Ticket < ActiveRecord::Base
  55.   include PgSearch
  56.  
  57.   belongs_to :user
  58.   belongs_to :category
  59.   has_many :messages
  60.  
  61.   pg_search_scope :tasty_search, :associated_against => {
  62.     :user => [:email],
  63.     :category => [:name],
  64.     :messages => [:body]    
  65.   }
  66.  
  67. end
  68.  
  69. class Message < ActiveRecord::Base
  70.   belongs_to :ticket
  71. end
  72.  
  73. ["Red", "Green", "Blue"].each { |color| Category.create(name: color) }
  74. ["Bob", "Eric", "Alex"].each_with_index { |name, i| User.create(email: "user_#{i}@example.com", name: name) }
  75.  
  76. categories = Category.all.pluck(:id)
  77. users = User.all.pluck(:id)
  78. bodies = ["Help me please", "What tastes good here", "Football is better than soccer"]
  79. 5.times do
  80.   ticket = Ticket.create(user_id: users.sample, category_id: categories.sample)
  81.   ticket.messages.create(body: bodies.sample)
  82. end
  83.  
  84. class App < Rails::Application
  85.   secrets.secret_token    = "secret_token"
  86.   secrets.secret_key_base = "secret_key_base"
  87.  
  88.   config.logger = Logger.new($stdout)
  89.   Rails.logger = config.logger
  90.  
  91.   routes.draw do
  92.     resources :tickets, only: :index
  93.   end
  94. end
  95.  
  96. tickets = Ticket.tasty_search("soccer")
  97. puts tickets.first
  98. binding.pry
  99.  
  100. puts 'hi'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement