【问题标题】:how to detect in which page we are Rails [duplicate]如何检测我们在哪个页面 Rails [重复]
【发布时间】:2014-01-28 10:22:06
【问题描述】:

我是 Rails 新手。 在我的 appliction.html.erb 中,我使用渲染部分:使用 html_css 共享文件。 此共享文件包含可供不同页面使用的按钮。 例如,对于页面 /posts 和 /answers,显示一个搜索字段,其中包含从共享文件中获取的提交按钮。 我想让这个按钮对两个页面都有效。当我们在 /posts 页面时,我们在帖子中搜索,当我们在 /answers 页面中时,我们在答案中搜索。

所以,我每次都需要调用正确的控制器。为此,我需要一个帮助器或技巧,让我知道我在哪个页面(我调用了哪个控制器#index?)。

rails 是否包含启用此功能的方法或助手?

谢谢:)

【问题讨论】:

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


    【解决方案1】:

    使用辅助函数:controller_nameaction_name

    如果你有控制器:

    class UsersController < ApplicationController
      def my_action
        # stuff
      end
    end
    

    在视图中,你可以这样做:

    Controller name: <%= controller_name %> <br/> # => users
    Action name: <%= action_name %> <br/> # => my_action
    

    见:http://guides.rubyonrails.org/action_controller_overview.html#routing-parameters

    【讨论】:

      【解决方案2】:

      动作和控制器已经在参数中。我想你宁愿用这些信息做事,而不是仅仅用控制器名称/动作名称来显示它

      例如,假设控制器被称为 about_controller 你可以只在 about 页面中显示页脚

       <% if params[:controller] == about %>
         <%= render partial: 'footer' %>
       <% end %>
      

      params[:action] 将包含操作。

      【讨论】:

        猜你喜欢
        • 2020-09-21
        • 2013-04-14
        • 1970-01-01
        • 2018-08-15
        • 1970-01-01
        • 2012-01-22
        • 2016-02-22
        • 1970-01-01
        • 2011-10-19
        相关资源
        最近更新 更多