我想知道是否可以在部分内容中执行/显示某些内容,具体取决于它出现的上下文。
例如,我有一个_user_info部分出现在侧边栏中,也出现在用户页面中,我希望在第二种情况下显示一些额外的信息。我该如何表达这种情况?
答案 0 :(得分:4)
您可以使用controller_name
和action_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 =>