gpt4 book ai didi

ruby-on-rails - Ruby on Rails 无法加载关注模块

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

我已经在位于以下位置的“concerns”文件夹中初始化了一个模块:appname/app/models/concerns

调用了 current_cart.rb

appname/app/models/concerns/current_cart.rb

module CurrentCart
extend ActiveSupport::Concern

private

def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end

我将其包含在我的 Controller line_item_controllers 中:

appname/app/controllers/line_items_controller.rb

class LineItemsController < ApplicationController
include CurrentCart

但是当我尝试在我的浏览器上执行时它会产生这个错误:

uninitialized constant LineItemsController::CurrentCart

app/controllers/line_items_controller.rb:2:in `<class:LineItemsController>'
app/controllers/line_items_controller.rb:1:in `<top (required)>'

最佳答案

这里似乎没有什么问题,如果我们谈论的是 Rails 4 - 它应该开箱即用。

但是,您正在做的是对关注点的轻微误用。你正在定义 models/concerns,你应该把它放在 controllers/concerns 中(为了便于阅读)。

对于这种情况,controller filters更合适。

class LineItemsController < ApplicationController
before_action :set_cart

private

def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end

关于ruby-on-rails - Ruby on Rails 无法加载关注模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26117515/

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