У меня проблема с путями во взглядах, и я не знаю, как ее решить. У меня есть «категории», у которых есть «посты» и «сообщения», принадлежащие «категориям».rails post path issue
1.- Я хочу показать на домашней странице усечение последнего сообщения определенной категории (идентификационный номер «1»). Тогда я хочу, чтобы после ссылки на шоу после пути, но я получаю эту ошибку:
«Unknow Действие „индекс“Действие не может быть найдено для PostsController»
Я думаю, что я мои пути неправильно потому что мне не нужен индексный указатель, потому что я собираюсь показать только эту должность. Итак, я думаю, что category_posts_path (@last_post) не является правильным путем (я не знаю, где искать дополнительную информацию о создании пути маршрута в представлениях ...). На самом деле, браузер показывает мне, что ищет категорию «2», когда это должность категории «1» ...? Что я делаю не так? Это браузер маршрут:
http://localhost:3000/en/categories/2/posts
Это мой вид/категории/файл home.html.erb:
<div class="post_details">
<h2><%= @last_post.title %></h2>
<%= image_tag @last_post.image(:header), class: "post_image" %>
<p><%= truncate @last_post.body, length: 100 %></p>
<p class="button"><%= link_to "READ MORE", category_posts_path(@last_post) %></p>
</div>
2.- У меня есть еще одна проблема пути в Views/категории/шоу .html.erb. У меня есть петля, чтобы показать все записи одной конкретной категории, но когда я связываюсь в какой-то записи (чтобы ее показать), снова появляется ошибка «индекса»:
«Неизвестное действие « Индекс »не смог найти для PostsController»
Это браузер маршрут:
http://localhost:3000/en/categories/1/posts
Это мнения/категории/show.html.erb файл:
<div class="post_details">
<h2><%= link_to post.title, category_posts_path(post) %></h2>
<%= image_tag post.image(:header), class: "post_image" %>
<p><%= post.body %></p>
</div>
Это файл categories_controller.rb:
class CategoriesController < ApplicationController
before_action :get_categories
def index
end
def show
@category = Category.find(params[:id])
end
def home
if params[:set_locale]
redirect_to root_url(locale: params[:set_locale])
else
@category = Category.find_by_id(1)
@last_post = @category.posts.order("created_at desc").first
end
end
def get_categories
@categories = Category.all.order("rank asc, name asc")
end
end
Это мой posts_controller.rb файл:
class PostsController < ApplicationController
def show
@category = Category.find(params[:category_id])
@post = @category.posts.find(params[:id])
end
end
Это мой route.rb файл:
scope '(:locale)' do
resources :categories do
resources :posts
end
resources :contacts
root 'categories#home'
get "/contact" => "contacts#new"
# static pages
get "/investment" => "contents#investment"
get "/partner-with-us" => "contents#partner", as: "partner"
get "/our-companies" => "contents#companies", as: "companies"
get "/site-map" => "contents#sitemap", as: "sitemap"
get "/terms-and-conditions" => "contents#terms", as: "terms"
get "/privacy" => "contents#privacy"
end
Вы можете оставить вывод «реки маршрутов» – beck03076