Controllers & Routes
Нистратов Артём
anistratov@go-promo.ru
Routes
resources :snippetsrake routesresource :snippetroot to: 'snippets#index'namespace :my do
resources :snippets do
put :publish, on: :member
end
endnamespace :my do
resources :snippets do
member do
put :publish
end
end
endnamespace :my do
resources :snippets
endresources :usersresources :users do
resources :snippets
end resources :snippets,
only: [:index, :show]
endControllers
class SnippetsController < ApplicationController
endapp/controllers/snippets_controller.rbclass SnippetsController < ApplicationController
def index
@snippets = Snippet.order(:created_at).last(10)
end
endgem 'will_paginate'class Snippet < ActiveRecord::Base
enum visibility: [ :_public, :_private ]
...
endrails g migration add_visibility_to_snippet visibility:integer scope :with_public_access, -> {
where visibility: visibilities[:_public]
}
...
end scope :for_main, -> { with_public_access.order :created_at }
...
endControllers
app/controllers/snippets_controller.rbclass SnippetsController < ApplicationController
def index
@snippets = Snippet.order(:created_at).last(10)
end
endclass SnippetsController < ApplicationController
def index
@snippets = Snippet.for_main.page params[:page]
end
end def publish
Snippet.find(params[:id])._public!
end
endclass SnippetsController < ::SnippetsController
before_action :find_user
...
endclass SnippetsController < ::SnippetsController
before_action :find_user
...
private
def find_user
@user = User.find params[:user_id] if params.key? :user_id
end
endclass SnippetsController < ::SnippetsController
before_action :find_user
...
private
def find_user
@user = User.find params[:user_id] if params.key? :user_id
end
def snippets
if @user.nil?
Snippet
else
@user.snippets
end
end
endclass SnippetsController < ::SnippetsController
before_action :find_user
def index
@snippets = snippets.for_main.page params[:page]
end
def publish
snippets.find(params[:id])._public!
end
private
def find_user
@user = User.find params[:user_id] if params.key? :user_id
end
def snippets
if @user.nil?
Snippet
else
@user.snippets
end
end
endapp/controllers/my/snippets_controller.rbmodule My
class SnippetsController < ::SnippetsController
private def find_user
@user = ... # current user
end
end
endget 'about', to: 'home#about'get 'about' => 'home#about'post 'feedback/:category', to: 'feedbacks#add'post 'feedback(/:category)' => 'feedbacks#add'match 'preview' => 'snippets#show'match 'preview' => 'snippets#show',
via: [:get, :post]match 'preview' => 'snippets#show',
via: [:get, :post],
as: :snippet_previewfourth
By adone
fourth
- 909