相关疑难解决方法(0)

Ruby模块中的常量范围

我在mixin模块中有一个恒定范围的问题.假设我有类似的东西

module Auth

  USER_KEY = "user" unless defined? USER_KEY

  def authorize
    user_id = session[USER_KEY]
  def

end
Run Code Online (Sandbox Code Playgroud)

除非已经定义,否则USER_KEY常量应默认为"user".现在我可以将它混合到几个地方,但在其中一个地方USER_KEY需要不同,所以我们可能会有这样的东西

class ApplicationController < ActionController::Base

  USER_KEY = "my_user"

  include Auth

  def test_auth
    authorize
  end

end
Run Code Online (Sandbox Code Playgroud)

我希望USER_KEY在授权中使用时会是"my_user",因为它已经定义了,但它仍然是"user",取自USER_KEY的模块定义.任何人都知道如何授权使用USER_KEY的类版本?

ruby module ruby-on-rails constants

54
推荐指数
3
解决办法
5万
查看次数

为什么Ruby中的'a = a``nil`?

我看了这个视频.为什么a = a评估nil是否a未定义?

a = a # => nil
b = c = q = c # => nil
Run Code Online (Sandbox Code Playgroud)

ruby local-variables variable-assignment

38
推荐指数
1
解决办法
2305
查看次数

使用“on:”的语法在 Ruby on Rails 中意味着什么?

这真的很难用谷歌搜索,因为我不知道它是 Ruby 的东西还是 Rails 的东西,而且谷歌在搜索“on”方面做得不好

\n

在一个看起来像这样的文件中

\n
# app/models/concerns/searchable.rb\nmodule Searchable\n  extend ActiveSupport::Concern\n\n  included do\n    include Elasticsearch::Model\n    include Elasticsearch::Model::Callbacks\n\n    # Every time our entry is created, updated, or deleted, we update the index accordingly.\n    after_commit on: %i[create update] do\n      __elasticsearch__.index_document\n    end\n\n    after_commit on: %i[destroy] do\n      __elasticsearch__.delete_document\n    end\n\n    # We serialize our model\'s attributes to JSON, including only the title and category fields.\n    def as_indexed_json(_options = {})\n      as_json(only: %i[title category])\n    end\n\n    # Here we define the index configuration\n    settings settings_attributes do\n …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

2
推荐指数
1
解决办法
171
查看次数