ruby 在Rails中,我无法在模型级别设置`attr_accessor` from concern

jaql4c8m  于 2023-08-04  发布在  Ruby
关注(0)|答案(2)|浏览(76)

我担心的是

module StrategyConcern
  extend ActiveSupport::Concern

  included do
    attr_accessor :strategy_display_name
  end
end

字符串
我已经把它包含在我的模型include StrategyConcern中,但是当我试图像这样赋值时

obj["strategy_display_name"] = "test_display_name"


我得到错误

undefined method `strategy_display_name=' for #<Test:0x00007f868e4aa350>


我希望访问该对象属性时不会出现上述错误。

baubqpgj

baubqpgj1#

假设obj是模型的示例,您应该使用

obj.strategy_display_name = "test_display_name"

字符串
因此,只需去掉方括号([],主要用于处理数组和散列)
你可以在那里阅读更多关于访问器的信息,例如:What is attr_accessor in Ruby?

628mspwn

628mspwn2#

您必须使用以下方法在模型中使用变量:

obj.strategy_display_name = 'test_display_name'
obj.strategy_display_name

字符串
活动记录模型的[]运算符用于访问保存数据库中的列值的变量,而不是示例变量

相关问题