Ruby on rails 如何从控制器关注点调用模型
我有一个模型Ruby on rails 如何从控制器关注点调用模型,ruby-on-rails,ruby-on-rails-4,namespaces,Ruby On Rails,Ruby On Rails 4,Namespaces,我有一个模型 models/ contract.rb 我有一个控制器的问题 controllers/ concerns/ search.rb 看起来像这样 module Search def get_contracts c = Contract.new end end 当我尝试调用get_contracts时,出现以下错误: 无法自动加载常量搜索::合同,应为 /用户/me/myapp/app/controllers/concerns/search/
models/
contract.rb
我有一个控制器的问题
controllers/
concerns/
search.rb
看起来像这样
module Search
def get_contracts
c = Contract.new
end
end
当我尝试调用get_contracts时,出现以下错误:
无法自动加载常量搜索::合同,应为
/用户/me/myapp/app/controllers/concerns/search/contract.rb来定义
它
是否有更好的方法从控制器关注点访问模型?看起来您还有一个
合同
模块,这就是为什么会出现该错误。您需要以某种方式将Contract
与命名空间一起使用,或者尝试使用::Contract
。但是无论如何,您有另一个同名的模块会产生这种冲突,我认为您应该命名一些东西,这样您就不会出现这些错误。谢谢您,使用双冒号,如::Contract works尽管双冒号:
会起作用,但仔细设计的名称间隔策略通常更可取。