条件root_url(索引)

时间:2010-02-04 22:57:38

标签: ruby-on-rails

我希望我的应用程序在首页上显示不同的数据,具体取决于用户是否已登录。

def index

  if current_user
    # render another controllers action
  else
    # render another controllers action
  end

end

我可以通过使用render_component来实现这一点。然而,它已经过时了一段时间。虽然我仍然可以将它用作插件,但我感兴趣的是,如果有人有更好的方法。 请记住,直接渲染另一个控制器的视图不是一种选择。

感谢。

2 个答案:

答案 0 :(得分:3)

只需将您的index方法用作要呈现的特定视图的公共代理。

def index
  if user?
    logged_in
  else
    logged_out
  end
end

private

def logged_in
  # stuff
  render :action => "logged_in"
end

def logged_out
  # stuff
  render :action => "logged_out"
end    

答案 1 :(得分:1)

如果它是一个相对较小的数据子部分,我可能会在视图帮助器中这样做。