Добрый день, хочется чтоб выводилось: engines/:brand_id/:id, но как это сделать?)
В модельках использую has_many
has_many :engines;
и belongs to соответственно
belongs_to :brand;
имеется отдельно controllers/admin/brands_controller и controllers/admin/engines_controller
которые создают в админке
/admin/engines/:id
/admin/brands/:id
отдельный контроллер - controllers/engines_controller.rb
class EnginesController < ApplicationController
add_breadcrumb "Главная", :root_path
add_breadcrumb "Двигатели", :engines_path
def index
@brands = Brand.all
@engines = Engine.all
end
def show
@engine = Engine.friendly.find(params[:id])
add_breadcrumb "#{@engine.name}".html_safe
set_meta_tags(title: @engine.title,
description: @engine.description,
keywords: @engine.keywords,)
end
end
views/engines/index.html.erb
<div class="content row">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><%= render_breadcrumbs :separator => ' -> ' %></li>
</ol>
</nav>
<h1>Новости</h1>
<div class="engines">
<% @engines.each do |engine| %>
<div class="engines__row row">
<div class="engines__image"><%= link_to image_tag(engine.image.url(:thumb)), engine_path(engine.brand,engine)
%></div>
<div class="engines__text">
<h3><%= link_to engine.name, engine_path(engine.brand, engine) %></h3>
<div class="date"><%= engine.price %></div>
<div class="date"><%= engine.displacement %></div>
<div class="date"><%= engine.brand.name %></div>
</div>
</div>
<% end %>
</div>
views/engines/show.html.erb
<div class="content row">
<div class="news-page">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><%= render_breadcrumbs :separator => ' -> ' %></li>
</ol>
</nav>
<div class="news-page__title">
<h1><%= @engine.name %></h1>
<h1><%= @engine.brand %></h1>
<h1><%= @engine.price %></h1>
</div>
<div class="news-item__wrapper">
<div class="inner-page__body">
<%= raw @engine.content %>
</div>
</div>
</div>
</div>
routes.rb
Rails.application.routes.draw do
mount Ckeditor::Engine => '/ckeditor'
namespace :admin do
root to: 'main#index'
get 'main/index'
resources :text_zones
resources :news, except: :show
resources :engines, except: :show
resources :brands
end
root to: "application#index"
resources :text_zones
resources :news, only: [:index, :show]
get 'engines/', to: 'engines#index'
get 'engines/:brand_id/:id', to: 'engine#show', as: :engine
Вьюха views/engines/index.html.erb выводится норм, но при нажатии на отдельный engine выдает ошибку:
id видны:
Подскажите что не так делаю, и как лучше сделать?