Add method FederalSubject#to_param
This commit is contained in:
parent
6bfee17e2e
commit
6c2e1f7a36
7 changed files with 19 additions and 12 deletions
|
@ -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
|
||||
|
|
|
@ -54,6 +54,10 @@ class FederalSubject < ApplicationRecord
|
|||
# Methods #
|
||||
###########
|
||||
|
||||
def to_param
|
||||
number&.to_s
|
||||
end
|
||||
|
||||
def display_name
|
||||
if I18n.locale == :ru
|
||||
native_name
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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 #
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Reference in a new issue