如何处理映射到 Rails 中单个参数的多个文本字段?

发布于 2024-11-15 18:44:02 字数 183 浏览 1 评论 0原文

例如,我有一个像这样的文本字段表:
条目 1 |值(标志=TRUE)|值(带有标志=FALSE)
条目 2 ...
.
.
.

我需要能够分配“值”,无论它是在左侧还是右侧列(并设置相应的标志)。

然后在同一行上,如果一列有一个条目,则另一列应变灰(否则它将覆盖另一列)。

For instance, I have a table of text_fields like this:
Entry 1 | Value (with flag=TRUE) | Value(with flag=FALSE)
Entry 2 ...
.
.
.

I need to be able to assign the "Value" whether it is in the left or right hand column (and set the corresponding flag).

Then on that same row if one column has an entry, then the other column should be grayed out (otherwise it would overwrite the other one).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青衫负雪 2024-11-22 18:44:02

我会使用模型上额外的非数据库属性来完成此操作。像这样的事情:

class MyModel < ActiveRecord

  attr_accessor :val1, :val2

  def val1=(value)
    self.real_value = value  # Make sure your real database column is updated
    self.the_flag = true
  end

  def val1
    the_flag ? real_value : nil  # Return real database column when asked
  end

  def val2=(value)
    self.real_value = value  # Make sure your real database column is updated
    self.the_flag = false
  end

  def val2
    the_flag ? nil : real_value  # Return real database column when asked
  end

然后在您看来,您连接到 val1 和 val2 而不是真正的列,并使用您的标志来确定灰显的内容。

I'd do this with extra, non-DB attributes on the model. Something like this:

class MyModel < ActiveRecord

  attr_accessor :val1, :val2

  def val1=(value)
    self.real_value = value  # Make sure your real database column is updated
    self.the_flag = true
  end

  def val1
    the_flag ? real_value : nil  # Return real database column when asked
  end

  def val2=(value)
    self.real_value = value  # Make sure your real database column is updated
    self.the_flag = false
  end

  def val2
    the_flag ? nil : real_value  # Return real database column when asked
  end

Then in your view, you hook up to val1 and val2 instead of the real column and use your flag to determine what's grayed out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文