gpt4 book ai didi

ruby-on-rails - Rails 共享 Controller 操作

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:06 31 4
gpt4 key购买 nike

我在构建 Controller 问题时遇到问题。我想关注扩展类的可用操作。

鉴于我有 Controller “SamplesController”

class SamplesController < ApplicationController
include Searchable
perform_search_on(Sample, handle: [ClothingType, Company, Collection, Color])
end

我包含“可搜索”模块

module Searchable
extend ActiveSupport::Concern

module ClassMethods
def perform_search_on(klass, associations = {})
.............
end

def filter
respond_to do |format|
format.json { render 'api/search/filters.json' }
end
end
end
end

并且,尽管设置了路由,但我收到错误消息“无法为 SamplesController 找到操作‘过滤器’”

我认为这可能与我是否包含或扩展模块有关。我尝试使用扩展,但也给出了同样的错误。

我仍然需要能够在每个 Controller 的基础上为模块提供一些配置选项。是否有可能实现我在这里尝试做的事情?

感谢任何帮助,谢谢

最佳答案

您应该将actions 传递给included block 和 perform_search_onclass_methods block 。

module Searchable
extend ActiveSupport::Concern

class_methods do
def perform_search_on(klass, associations = {})
.............
end
end

included do
def filter
respond_to do |format|
format.json { render 'api/search/filters.json' }
end
end

end
end

当您的Searchable 模块包含 方法perform_search_onfilter 操作时。

关于ruby-on-rails - Rails 共享 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30979981/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com