如何在Rails中的控制器中查看show函数的功能?

时间:2013-02-25 18:44:14

标签: ruby-on-rails

我有一条路线:GET /api/:api_version/publishers/:id(.:format) {:controller=>"api/publishers", :action=>"show"}

所以我在publishers_controller中弹出api,然后看起来:

# Provides access to publisher information
class Api::PublishersController < Api::BaseResourceController
  inherit_resources
  respond_to_data_formats

  before_filter :find_publisher
  before_filter :require_publisher_login, :only => :authenticate

  actions :show

  # Note: We remove App scope from cache path, since Publisher info should be cached across all apps
  caches_action :show, :login, :cache_path => lambda {|c| {:version => c.send(:publisher_version), :model_version => Publisher.cache_config.version}}, :expires_in => 60.seconds

  # Action redirects the top frame to the publisher's site (for the user to log in)
  def login
    # Prevent infinite loop where the page redirects to itself.
    raise ArgumentError, 'Publisher website url is not configured' if @publisher.website_url.blank?
  end

  def authenticate 
    respond_with(@publisher)
  end

  private

    def find_publisher
      params[:publisher_id] = params[:id]
      super
    end

    def publisher_version
      @publisher.lock_version
    end

end

没有show功能,所以我怎样才能看到它的作用?

1 个答案:

答案 0 :(得分:2)

此类继承show方法,大概来自Api::BaseResourceController。如果我不得不打赌,我猜Api::BaseResourceController使用inherited_resources或类似的东西,只是假设show方法应该做一个非常典型的事情:找到记录并显示它使用可用的模板。