Rails中的条件部分取决于上下文页面?

时间:2011-09-17 13:46:45

标签: ruby-on-rails ruby-on-rails-3

我想知道是否可以在部分内容中执行/显示某些内容,具体取决于它出现的上下文。

例如,我有一个_user_info部分出现在侧边栏中,也出现在用户页面中,我希望在第二种情况下显示一些额外的信息。我该如何表达这种情况?

4 个答案:

答案 0 :(得分:4)

您可以使用controller_nameaction_name方法。

if controller_name == 'user' && action_name == 'show'
  details
end

答案 1 :(得分:2)

你所要求的是:

if params[:controller].eql?('users')
  view code

但是我会将部分分成两个独立的部分,并从您需要的任何视图中显示不同的部分。

答案 2 :(得分:1)

当然,这取决于您想要发现/暴露该上下文的方式。简单的方法是条件,可以通过多种方式设置,也可以从一组条件中导出。这可能发生在过滤器,动作等中。

如果更改足够大,最好将它们封装在单独的部分中。

另一个选择是将render标记包装在计算/获取这些条件的帮助器中。

这取决于条件的性质,你想要处理它们的地方/方式等等。

答案 3 :(得分:0)

或者将变量传递给部分via:locals =>