Ruby on rails 使用Rails 4.x访问模块资源
我正在使用rails 4.1和酪蛋白CMS: 我已经在casein中设置了一个帖子模型、视图和控制器,但是我想访问casein之外的帖子,可能是通过另一个叫做blog的路径 我尝试了一次又一次地修改我的路由和控制器,并且列出了一系列错误。这里的一些人可能知道让这项工作发挥作用的诀窍,希望有人能帮助我,或者至少向我解释应该发生什么,或者我可能做错了什么 酪蛋白添加到路线中的是:Ruby on rails 使用Rails 4.x访问模块资源,ruby-on-rails,ruby-on-rails-4,rails-routing,Ruby On Rails,Ruby On Rails 4,Rails Routing,我正在使用rails 4.1和酪蛋白CMS: 我已经在casein中设置了一个帖子模型、视图和控制器,但是我想访问casein之外的帖子,可能是通过另一个叫做blog的路径 我尝试了一次又一次地修改我的路由和控制器,并且列出了一系列错误。这里的一些人可能知道让这项工作发挥作用的诀窍,希望有人能帮助我,或者至少向我解释应该发生什么,或者我可能做错了什么 酪蛋白添加到路线中的是: #Casein routes namespace :casein do resources :posts en
#Casein routes
namespace :casein do
resources :posts
end
我想匹配索引并向=>/blog显示操作。如何在我的routes.rb中正确写入此内容
我的控制器,我已经基本上从Casein的PostsController中提取了操作,并且包括Casein模块,试图简单地列出所有的帖子
以下是my blogs\u控制器的索引操作的外观:
class BlogsController < ApplicationController
module Casein
def index
@casein_page_title = 'Posts'
@posts = Post.order(sort_order(:title)).paginate :page => params[:page]
end
end
end
class BlogsControllerparams[:page]
结束
结束
结束
最后,我也想把博客带到另一个博客,但我认为可以从那里开始,但如果有人有任何建议,我将不胜感激。你可能会问这个问题,但你的问题不是很清楚 如果您希望拥有以下路由,并对每个路由使用相同的控制器
Prefix Verb URI Pattern Controller#Action
casein_posts GET /casein/posts(.:format) casein/posts#index
POST /casein/posts(.:format) casein/posts#create
new_casein_post GET /casein/posts/new(.:format) casein/posts#new
edit_casein_post GET /casein/posts/:id/edit(.:format) casein/posts#edit
casein_post GET /casein/posts/:id(.:format) casein/posts#show
PATCH /casein/posts/:id(.:format) casein/posts#update
PUT /casein/posts/:id(.:format) casein/posts#update
DELETE /casein/posts/:id(.:format) casein/posts#destroy
blog GET /blog(.:format) casein/posts#index
GET /blog/:id(.:format) casein/posts#show
那么您的config/routes.rb文件应该包含
namespace :casein do
resources :posts
end
get '/blog', to: 'casein/posts#index'
get '/blog/:id', to: 'casein/posts#show'
你需要你的控制器是app/controllers/casein/posts\u controller.rb
但是我强烈建议您使用两个不同的控制器,并且关注blogs控制器上的共享方法,模块不应该包含类,反之亦然吗?这确实为我提供了我想要的资源,但我想我希望的只是内容。我会试着从这里算出。谢谢如果你想要的只是内容,你可以为博客使用不同于酪蛋白/帖子的控制器。两者都可以使用相同的模型,没有问题