我的主页(或欢迎页面)将包含来自两个模型的数据(让我们称它们为作者和帖子).我是rails新手,不确定实现这一点的最佳方式是什么.

我是否应该创建一个名为welcome的新控制器,它从作者和帖子中收集数据,然后在welcome index视图中显示它们?或者我应该在post模型下有一个受欢迎的观点,它也从作者那里获取数据?或者其他方法来实现这一点?

我理解如何在技术上做到这一切,但不确定使用rails框架的最佳实践方法是什么.

推荐答案

问题是,你的主页只是一个登录页还是一组页面?如果它只是一个登录页,你不会期望你的用户在那里停留很长时间,除非go 其他地方.如果是一组页面,或与现有组类似,则可以向最像的控制器添加操作.

我为当前项目所做的是制作一个名为Static的控制器,因为我需要3个静态页面.主页就是其中之一,因为除了go 别处,没有什么可看或可做的.

要映射默认路由,请在routes.rb中使用以下命令:

# Place at the end of the routing!
map.root :controller => 'MyController', :action => :index

就我而言,这将是:

map.root :controller => 'static', :action => :index

如果你愿意,你可以为这个主页创建一个控制器.我把它叫做main,或者你能记住的与主页相关的东西.从那里你可以得到你的数据和模型,并遵从输出视图.

class MainController < ApplicationController
  def index
    @posts = Posts.find(:all, :limit => 10, :order => 'date_posted', :include => :user)
  end
end

假设您正确定义了模型关系,那么匹配它的模板将非常简单.

祝你好运,希望这有帮助.

Ruby-on-rails相关问答推荐

form_with正在try 用错误的路径生成操作

如何在Rails中创建没有字符串的查询

查询Where Date.parse Rails

在 Rails 中进行 Http 基本身份验证

验证模型属性大于另一个

Rails 3.1 assets资源 - 奇怪的开发服务

Rails - 如何从 http://example.com 重定向到 https://www.example.com

如何从 Ruby on Rails 应用程序返回正确的 HTTP 错误代码

Rails 是否带有未授权异常?

使用 RSpec 和 Capybara (Rails) 测试重定向

如何将自定义过滤器添加到 Active Admin?

Rails 4 迁移:如何重新排序列

如何将变量传递给render_to_string?

Rails 5:无法从参数中检索哈希值

如何从邮箱中获取域

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

Ruby on Rails:如何从显示的子资源中获取错误消息?

Rails:如何将日期时间字符串解析为特定时区

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?

Rails.cache 在测试之间被清除了吗?