簡體   English   中英

包括軌道控制器動作

[英]Including rails controller action in concern

是否可以通過關注添加控制器操作?

我試圖通過關注包含一個控制器動作,但它沒有找到:

module Wizbang
  module ActsAsWizbang
    extend ActiveSupport::Concern

    included do

      def foo
        # do something
      end
    end
end

我已將approprioate路由添加到我的路由文件中,但它無法在控制器上找到該操作。

當我在控制器中包含此代碼時

class SimpleController < ApplicationController

  include Wizbang::ActsAsWizbang

end

我收到的消息是:

The action 'foo' could not be found for SimpleController.

如果要定義要混合到類中的方法,只需在模塊中定義它們即可。 它們不會進入included塊內:

module Wizbang
  module ActsAsWizbang
    extend ActiveSupport::Concern

    def foo
      # do something
    end
  end
end

仔細檢查include語句是否正確解析。

我最近得到了這個兔子洞,但我的問題並不在於我做錯了 - 這是因為我使用的包含語句不正確,但是這個錯誤被某種方式吞噬了,而我卻看到了這一點。 我最終得到了類似的東西,但你的情況可能會有所不同。

module Api::V1::Concerns
  module Foo
    extend ActiveSupport::Concerns
...


module Api::V1::Bar
  class BazController < ActionController::API
    include Api::V1::Concerns::Foo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM