Ruby on rails 我可以从布局文件重定向到控制器吗?或

Ruby on rails 我可以从布局文件重定向到控制器吗?或,ruby-on-rails,Ruby On Rails,目前在我的一个布局视图中有这样的代码 <%- pending_items = items.pending.count if pending_reviews > 0 -%> <div id="notice"> <%= link_to("YOU HAVE #{pluralize(user_pending_items, 'PENDING ITEMS')}", user_item_path) %> </div> <

目前在我的一个布局视图中有这样的代码

<%- pending_items = items.pending.count
if pending_reviews > 0 -%>
    <div id="notice">
        <%= link_to("YOU HAVE #{pluralize(user_pending_items, 'PENDING ITEMS')}", user_item_path) %>
    </div>
<%- end -%>
0-%>
我需要用更多的条件来扩展代码,然后如果满足某个条件,就重定向到另一个操作。这里有几个问题:

  • 如果满足某个条件,我是否可以从布局文件重定向回控制器?我还没有找到任何有效的方法
  • 另外,在控制器中运行所有这些条件是否更有意义?我试着把它放在我的home_控制器中,但布局没有拾取值

  • 谢谢。

    看起来像是应该移动到控制器的代码。如果对每个页面执行此操作,则可以将其移动到application controller中的before筛选器()。请记住,如果您希望在视图中使用实例变量,控制器应设置实例变量(开头带有
    @

    我建议将逻辑放置在控制器或模型中。必须使用实例变量将值传递到布局:

    # in your controlller @pending_items = Item.pending.count if @pending_items > 0 ... redirect_to ... else ... redirect_to ... end #在你的控制器里 @待定项目=Item.pending.count 如果@pending_items>0 ... 重定向到。。。 其他的 ... 重定向到。。。 结束
    @pending\u items实例变量将可在布局中访问。

    我已将筛选器添加到我的应用程序\u控制器中。工作起来很有魅力。谢谢