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

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

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

你要求的是这样的:

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

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

您可以使用controller_nameaction_name方法。

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

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

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

另一种选择是将render标记包装在帮助程序中,以帮助计算/获取这些条件。

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

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