Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails 4.x访问模块资源_Ruby On Rails_Ruby On Rails 4_Rails Routing - Fatal编程技术网

Ruby on rails 使用Rails 4.x访问模块资源

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

我正在使用rails 4.1和酪蛋白CMS:

我已经在casein中设置了一个帖子模型、视图和控制器,但是我想访问casein之外的帖子,可能是通过另一个叫做blog的路径

我尝试了一次又一次地修改我的路由和控制器,并且列出了一系列错误。这里的一些人可能知道让这项工作发挥作用的诀窍,希望有人能帮助我,或者至少向我解释应该发生什么,或者我可能做错了什么

酪蛋白添加到路线中的是:

#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控制器上的共享方法,模块不应该包含类,反之亦然吗?这确实为我提供了我想要的资源,但我想我希望的只是内容。我会试着从这里算出。谢谢如果你想要的只是内容,你可以为博客使用不同于酪蛋白/帖子的控制器。两者都可以使用相同的模型,没有问题