ruby-on-rails - Rails 4 - 如何根据当前路线显示相同 Controller 操作的不同 View ?

标签 ruby-on-rails ruby ruby-on-rails-4

我有一个带有索引操作的标准帖子 Controller 。

目前,我将其路由为主页 / 以及帖子页面 /posts

class PostsController < ApplicationController

    def index
    # Logic and finds here
    end

end

在我的routes.rb文件中:

root to: "posts#index"
get "/posts" => "posts#index"

但是,在我看来,根据路线是 /posts 还是只是 /,我希望布局略有不同。这可能吗?如果是这样,最佳实践是什么?

我正在考虑在帖子 Controller 中创建另一个操作,但随后我将复制已在索引操作中定义的逻辑 - 我想避免这种情况。

我基本上想使用相同的内容,但显示不同的 View 。

非常感谢任何建议或帮助。

谢谢, 迈克尔。

最佳答案

除了使用不同的 Controller /操作之外,一种解决方案是从路由器传递一个附加参数:

root to: "posts#index", source: 'home'
get "/posts" => "posts#index"

然后在你的 Controller 中你可以这样做:

class PostsController < ApplicationController
  def index
    # Logic
    render(params[:source] || 'index')
  end
end

当用户通过根路径输入时,它将渲染 home 模板,否则渲染 index 模板。

关于ruby-on-rails - Rails 4 - 如何根据当前路线显示相同 Controller 操作的不同 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23361734/

相关文章:

javascript - 如何将 Selectize.js 安装到我的 Rails 应用程序中?

html - 表单验证失败后表单上的单选按钮无法正确呈现 - bootstrap

ruby-on-rails - 在 HAML 中使用 ruby​​ 变量作为类名

javascript - 客户端通过 JS 请求 JSON 并填充 Rails View

ruby-on-rails - 在 Elastic Beanstalk 上升级 Ruby

ruby-on-rails - 在 cookies.signed 与 session 中存储值的安全差异

ruby - 将哈希附加到数组

javascript - rails : do we have anything built-in to output a ruby array as arguments to a javascript function call?

ruby - Textmate 错误重复行 "ruby: warning: -K is specified; it is for 1.8 compatibility and may cause odd behavior"

ruby-on-rails - 如何从IP地址中找出用户所在的国家和城市?