【问题标题】:Form field not part of rails db model表单字段不是 rails db 模型的一部分
【发布时间】:2012-06-16 02:07:26
【问题描述】:

我在相应模型中尝试访问的表单上有一个字段,但它不是模型数据库表的一部分。处理这个问题的最佳方法是什么?这是不好的做法吗?

【问题讨论】:

  • 表单域和数据库表中实际持久化的数据是什么关系?

标签: ruby-on-rails


【解决方案1】:

拥有不在数据库表中的模型属性是可以的。这些被称为虚拟属性

假设您要处理一个名为“virtual_attribute”的属性。以下是您将如何处理它:

在您的表单中,您将拥有如下内容:

<%= f.check_box :virtual_attribute %>

在您的模型中,您必须这样做:

attr_accessor :virtual_attribute

请注意,这是一个内置的 Ruby 方法,它为您提供该属性的 setter 和 getter:

#getter
def virtual_attribute
  @virtual_attribute
end

#setter
def virtual_attribute=(value)
  @virtual_attribute = value
end

【讨论】:

  • 很好的答案 - 谢谢。然而,似乎我的虚拟属性正在进入模型 null。这就是我设置字段的方式:
  • 我将在另一个问题中打开它,因为我相信它值得。
  • @cman77 可能是因为您没有将其添加到控制器中允许的参数中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多