我有一个信息中心/帖子和一个使用相同'帖子的首页/帖子。控制器模型。
我基本上希望仪表板和首页都可以使用所有操作,但布局不同。
对我的情况最好的做法是什么?
答案 0 :(得分:1)
我会创建两个新的控制器,它们继承了你现在使用的'posts'控制器。然后只需覆盖那些新控制器中的布局方法。
如果你不能这样做,layout
也会采用符号而不是字符串。
即。将layout :dashboard_or_frontpage
添加到该控制器。通过指定符号而不是字符串,Rails将使用该名称调用该方法,期望返回一个字符串来定义要使用的布局:http://apidock.com/rails/ActionView/Layouts/ClassMethods/layout
在不了解您的设置的情况下,我无法帮助您了解决定要显示的布局所需的逻辑。但它可能看起来像这样。
class PostsController < ApplicationController
layout :dashboard_or_frontpage
private
def dashboard_or_front_page
if on_the_dashboard?
"dashboard"
else
"front_page"
end
end
end
答案 1 :(得分:1)
看一下这篇文章http://guides.rubyonrails.org/layouts_and_rendering.html,您可以使用:layout param和render方法。