1
0
Fork 0

Add method FederalSubject#to_param

This commit is contained in:
Alex Kotov 2019-07-22 15:39:32 +05:00
parent 6bfee17e2e
commit 6c2e1f7a36
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
7 changed files with 19 additions and 12 deletions

View File

@ -9,7 +9,7 @@ class FederalSubjectsController < ApplicationController
@federal_subjects = policy_scope(FederalSubject).order_by_display_name
end
# GET /federal_subjects/:id
# GET /federal_subjects/:number
def show
authorize @federal_subject
end
@ -17,6 +17,6 @@ class FederalSubjectsController < ApplicationController
private
def set_federal_subject
@federal_subject = FederalSubject.find params[:id]
@federal_subject = FederalSubject.find_by! number: params[:number]
end
end

View File

@ -54,6 +54,10 @@ class FederalSubject < ApplicationRecord
# Methods #
###########
def to_param
number&.to_s
end
def display_name
if I18n.locale == :ru
native_name

View File

@ -2,9 +2,6 @@
<table class="table">
<thead>
<tr>
<th scope="col">
<%= FederalSubject.human_attribute_name :id %>
</th>
<th scope="col">
<%= FederalSubject.human_attribute_name :number %>
</th>
@ -24,7 +21,6 @@
<tbody>
<% @federal_subjects.each do |federal_subject| %>
<tr>
<td><%= federal_subject.id %></td>
<td><%= federal_subject.number %></td>
<td><%= federal_subject.display_name %></td>
<td><%= federal_subject.centre %></td>

View File

@ -8,9 +8,6 @@
</p>
<dl class="mt-3">
<dt><%= FederalSubject.human_attribute_name :id %></dt>
<dd><%= @federal_subject.id %></dd>
<dt><%= FederalSubject.human_attribute_name :number %></dt>
<dd><%= @federal_subject.number %></dd>

View File

@ -11,7 +11,7 @@ Rails.application.routes.draw do
resources :accounts, param: :nickname, only: :show
resources :federal_subjects, only: %i[index show]
resources :federal_subjects, param: :number, only: %i[index show]
###############
# User routes #

View File

@ -15,6 +15,16 @@ RSpec.describe FederalSubject do
it { is_expected.not_to validate_presence_of :regional_office }
end
describe '#to_param' do
specify do
expect(subject.to_param).to be_instance_of String
end
specify do
expect(subject.to_param).to eq subject.number.to_s
end
end
describe '#english_name' do
def allow_value(*)
super.for :english_name

View File

@ -2,13 +2,13 @@
require 'rails_helper'
RSpec.describe 'GET /federal_subjects/:id' do
RSpec.describe 'GET /federal_subjects/:number' do
let(:federal_subject) { create :federal_subject }
before do
sign_in current_account.user if current_account&.user
get "/federal_subjects/#{federal_subject.id}"
get "/federal_subjects/#{federal_subject.number}"
end
for_account_types nil, :guest, :usual, :superuser do