Run /etc/init.d/postgresql start
before hitting the Run
button.
app/decorators/models/forem/topic_decorator.rb
Forem::Topic.class_eval do
include PgSearch
pg_search_scope :search, against: [:subject], using: { tsearch: { dictionary: "english" } }, associated_against: { posts: [:text] }
end
app/decorators/controllers/forem/forums_controller_decorator.rb
Forem::ForumsController.class_eval do
def search
@search = params[:keywords]
@topics = Forem::Topic.search(@search)
end
end
app/views/layouts/application.html.erb
<div class="search">
<%= form_tag main_app.search_path, method: :get do %>
<label for="search">Search</label>
<%= search_field_tag :keywords, params[:keywords], id: "search" %>
<% end %>
</div>
app/views/forem/forums/search.html.erb
<h1>Search results</h1>
<%= render @topics %>
config/routes.rb
get '/search', to: 'forem/forums#search', as: 'search'
mount Forem::Engine, :at => '/'
root :to => "forums#index"
config/database.yml
development:
adapter: postgresql
username: admin
password: admin1234
database: forem
template: template0 # Required for Runnable
Console (Ubuntu):
apt-get install postgresql
/etc/init.d/postgresql start
su postgres -c psql
PostgreSQL console:
CREATE ROLE admin SUPERUSER LOGIN PASSWORD 'admin1234';
\q