如何检测我们在哪个页面Rails

时间:2014-01-28 02:07:24

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

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

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

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

谢谢:)

2 个答案:

答案 0 :(得分:0)

使用辅助函数: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

答案 1 :(得分:0)

动作和控制器已经在参数中。我想你宁愿用这些信息来做事情,而不是只用controller_name / action_name

来显示它

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

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

params[:action]将包含该操作。