Rails,一个控制器可以对应多个模型?

时间:2015-01-20 06:23:59

标签: ruby-on-rails

我想用rails创建一个网站,现在我想要一个有多个页面的控制器,每个页面从不同的数据表中获取数据,我该怎么做?

1 个答案:

答案 0 :(得分:3)

这绝对是可能的。你没有在教程中看到它,或者只是经常看到它的原因是因为Rails建立在REST的概念之上。因此,出于多种原因,不建议采用此行为。但是,如果您愿意,这里是步骤的大致概述。

这需要多个步骤:

1。)生成控制器。 rails generate controller <name>

2.)在您生成的控制器中创建路由和相应的操作。

即。在routes.rb中,您声明了url,控制器来处理它(使用您刚生成的那个)和action(控制器中的方法)

3.。)在每个操作中,找到您想要的任何数据库表。如果您的数据库包含帖子,标签和评论作为表格,例如......

Class YourController < ApplicationController
  def action1
    @posts = Post.all
  end

  def action2
    @comments = Comment.all
  end

  def action3
    @tags = Tag.all
  end
end

现在,action1将需要一个名为action1.html.erb的视图,而其他两个操作则相同。当您转到action 1中设置的routes.rb网址时,它会从该视图中呈现html和erb代码。

这是一个非常深入的问题,这是对这些步骤的简要概述。有很多很好的资源可以开始使用Rails。

Ryan Bate的Railscasts很棒。 边缘指南也是实心的:edgeguides.rubyonrails.org/