gpt4 book ai didi

ruby-on-rails - 访问类主体中的变量

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:27 26 4
gpt4 key购买 nike

我正在尝试在我的应用程序中使用 Muffin 实现表单对象.

在我的 Controller 中,我这样做:

class MyController < ApplicationController
def new
@form = MyForm.new
end
end

其中 MyForm 是一个表单对象,如下所示:

class MyForm < Muffin::Base
attribute :my_attribute
end

我想做的基本上是这样的:

class MyController < ApplicationController
def new
@form = MyForm.new(array_of_attribute_names)
end
end

因此在实例化 MyForm 时,我可以按照以下方式做一些事情:

class MyForm < Muffin::Base
array_of_attribute_names.each do |name|
attribute name
end
end

我知道上面的方法行不通,这表明我对 Ruby 的 OO 模型缺乏了解。有什么方法可以达到同样的效果吗?

最佳答案

您可以重载初始化方法。类似这样的事情应该可行,但您可能必须调整参数结构以适应 Muffin 基类:

class MyForm < Muffin::Base
def initialize(options = {})
if options[:array_of_attribute_names].present?
options[:array_of_attribute_names].each do |attribute_name|
attribute attribute_name
end
end
super
end
end

然后:

@form = MyForm.new(array_of_attribute_names: array_of_attribute_names)

关于ruby-on-rails - 访问类主体中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57489766/

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