Tôi có một bài đăng tên bộ điều khiển. Trong /config/routes.rb
của tôi, tôi đã sử dụng này -Tuyến đường Ruby trên đường ray đến phương thức tùy chỉnh trong bộ điều khiển từ màn hình
resources :posts
/app/controllers/posts_controller.rb:
class PostsController < ApplicationController
def new
@post = Post.new
end
def show
@post = Post.find(params[:id])
end
def categoryshow
@post = Post.find(params[:category])
end
def index
@posts = Post.all
end
def create
@post = Post.new(params[:post])
if @post.save
flash.now[:success] = "Your Post Successful"
redirect_to @post
else
render 'new'
end
end
end
Tôi mới vào đường ray và tôi thường bị lẫn lộn với các tuyến đường. Tôi có một bộ điều khiển static_pages khác. Trong đó có một tập tin home.html.erb
.
def categoryshow
@post = Post.find(params[:category])
end
'categoryshow' của bài viết khiển từ /app/views/static_pages/home.html.erb
Làm thế nào để quản lý đó -
Những gì tôi muốn làm gì để gọi là? Nếu tôi sử dụng 'posts_path', nó sẽ hoạt động chỉ mục thay vì hành động categoryshow.
#Tôi đọc qua liên kết và thử một vài thứ từ đó. Đây là vấn đề mà tôi đang phải đối mặt:
Khi tôi cố này trong config/routes.rb
resources :posts do
collection do
get 'categoryshow'
end
end
này tạo ra một 'categoryshow_posts_path'
Theo quan điểm của tôi, tôi đã sử dụng này:
<ul class="users">
<%= Post::CATEGORIES.each do |category| %>
<li>
<%= link_to category,categoryshow_posts_path %>
</li>
<% end %>
</ul>
điều khiển bài viết của tôi có các phương pháp sau đây:
def chuyên cung cách
@post = Post.find(params[:category])
cuối
Trong trường hợp này, tôi nhận được lỗi sau:
ActiveRecord :: RecordNotFound trong PostsController # categoryshow
không thể tìm thấy bài viết mà không cần một ID
Thứ hai, tôi đã cố gắng bằng cách sử dụng các tuyến đường không tháo vát như đã đề cập trong liên kết mà bạn cung cấp:
match ':posts(/:categoryshow(/:category))'
Trong giao diện, tôi đang sử dụng này:
Categories
<ul class="users">
<%= Post::CATEGORIES.each do |category| %>
<li>
<%= link_to category,"posts/#{category}" %>
</li>
<% end %>
</ul>
Trong trường hợp này, tuyến đường không có tài nguyên của chúng tôi sẽ chỉ khớp với nhau nếu không có các tuyến đường có sẵn khác.Tuy nhiên, tôi đang thấy rằng chương trình hành động phù hợp và tôi nhận được thông báo lỗi này:
Đây là hành động cho thấy:
def hiển thị
@post = Post.find(params[:id])
cuối
ActiveRecord :: RecordNotFound trong PostsController # show
Không thể tìm thấy Bài đăng có id = Chính trị
Tôi thực sự đánh giá cao sự trợ giúp ở đây !!
Cảm ơn (Sidharth)
Tôi có cùng sự cố ...:/ Bạn đã giải quyết nó chưa? – roadev
@roadev \t Vì câu hỏi là từ bốn năm trước, tôi chắc chắn hy vọng như vậy. –