问题标签 [virtual-attribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
543 浏览

ruby-on-rails-3 - 在另一个模型控制器中使用的 Rails 3 虚拟属性

尝试尝试在另一个控制器中实现模型的虚拟属性的问题。有没有办法做到这一点?

这是虚拟属性:

在另一个控制器中,我正在尝试做:

当我这样做时,我得到了一个错误:

有人帮我解决这个问题吗?

谢谢

更新; 这是完整的模型:

0 投票
1 回答
1165 浏览

ruby-on-rails - 通过回调将 current_user 传递给模型

我有几个回调记录创建/更新活动:

我需要扩充设计以在创建/更新时传递current_user(设计)log_projelement_activity来记录用户。

我试图current_user通过虚拟属性将控制器传递给模型和回调。但这行不通。

编码:

每个创建/更新Activity都有预期值,除了user字段是nil.

我错过了什么?

0 投票
1 回答
1138 浏览

ruby-on-rails - 在范围内设置虚拟属性

我试图找到一种在范围内设置虚拟属性的方法。背景是我有属于帐户的客户。客户可以购买销售商品。我有一张表customers_salesitem,它显示了哪些客户过去购买了哪些商品。

我想生成一个带有附加字段“类别”的销售项目列表,该列表将销售项目分类为客户购买的销售项目、不同客户从同一帐户购买的销售项目以及尚未购买的销售项目。任何人在帐户上购买。最终,我想将范围用于自动完成字段,但目前有点偏离。

我尝试了一些类似的东西:

尽管 SQL 已正确生成,但范围会返回没有类别的项目列表。

0 投票
1 回答
204 浏览

ruby-on-rails - 如何覆盖模型中另一个虚拟属性的属性?

我有一个虚拟属性start_date和一个数据库列start(日期时间)。

start我怎样才能用日期覆盖日期(但不是时间)start_date

我在 setter 方法中尝试了这个,记录器说 self.start/start 已设置,但在数据库和更新日志start中仍然有旧日期。

在日志中,我可以看到start已填充:

0 投票
1 回答
465 浏览

ruby-on-rails - 在 attr_encrypted 使用所述虚拟属性作为加密密钥之前未设置虚拟属性

何时encryption_key由 调用attr_encrypted:passphrase尚未设置。加密密钥最终是盐的 sha1 散列;它应该是密码和盐的 sha1 哈希。

salt 在创建时生成并保存在数据库中。

如何:passphrase在加密密钥中使用虚拟属性?

有什么建议么?

为简洁起见,我省略了一堆代码。

提前致谢!

0 投票
1 回答
5272 浏览

sorting - yii 按自定义属性排序

在我的假期模型Vac中,我有这个功能

此函数返回一个假期有多少天。

我想像这样向 cgridview 添加一个自定义列:

它工作正常。但我不知道如何对这个自定义属性进行排序。我尝试使用 CSort 但它不起作用。任何的想法?

0 投票
1 回答
458 浏览

ruby-on-rails - 使用 Sinatra 和 Datamapper 的虚拟属性

我正在将 Rails 应用程序转换为 Sinatra。该应用程序依赖于支持虚拟属性的 ActiveRecord,但是,我正在努力在 DataMapper 中找到类似的支持。

在 Rails 中,我使用了一种算法来生成分数并根据分数对记录进行排序。虚拟属性是这个过程的核心。有谁知道如何在 Sinatra/DM 中复制此功能?

我愿意接受任何解决方法。重构可以稍后进行,因为我目前只对功能感兴趣。

理论上,该解决方案的工作原理如下:

0 投票
3 回答
2482 浏览

php - 如何将派生列添加到我的 Yii 模型中?

在 Yii 中,我需要在我的模型中的任何结果集中添加一个“派生”列。该列实际上并不存在于数据库表中。

例如,假设我有一个Activity模型。只有两种类型的活动:(1)收入,或(2)费用。

如果我想添加一个名为income_totalor的列expense_total(取决于正在访问的活动类型),我该怎么做?

这是 Ruby on Rails 中模型的一个工作示例Activity(我基本上想知道如何做同样的事情,但在 Yii 中):

2012-07-01 更新:

Leonardo 提供的答案指向使用Virtual Attributes,这为我从数据库中检索的结果集的每个“行”添加了一个属性。

如果Activity模型与 有BELONGS_TO关系Parent,则父视图可能如下所示:

但是,在 foreach() 循环中访问此虚拟属性没有意义。

我想要的这些虚拟属性为整个结果集提供一个“聚合”值,因此我希望能够使用 访问它$parent->activities->incomes_total,如下所示:

我需要在 Activity 模型代码中做什么来实现这一点,或者我应该以不同的方式思考这个问题?

0 投票
1 回答
330 浏览

ruby-on-rails-3 - Rails 3 validates_uniquess_of 具有范围的虚拟字段

我正在开发一个 Rails 3 应用程序,该应用程序需要在虚拟字段上运行验证以查看记录是否已经存在......这是我的模型代码:

我没有收到任何错误,它通过了验证。

0 投票
1 回答
201 浏览

ruby-on-rails-3 - 受时区影响的 rails 3 应用程序

更新:

复制自以下评论:

我曾考虑为网站的每个访问者使用针对 IP 地址的 Web 服务,但后来我想知道用户在跨时区的位置查看会议,因此时区必须与正在查看的会议的位置相关联,而不是与用户的位置相关联自己就在那一刻。我需要一个用户能够查看会议列表(包含时间和地点),并且显示的时间是实际的会议时间,但是用于列出会议的 SELECT 的 WHERE 子句需要考虑每个会议地点的时区.


我环顾四周,有很多关于在 Rails 应用程序中使用时区的问题。

问题在于应用程序需要知道用户所在的时区,以便它能够正确地对数据库运行查询以检查将来的日期时间。

我不希望我网站的常规访问者需要登录才能使其正常工作,所以我正在考虑以下几点:

  • 管理员用户登录以发布item特定的locationdatetime
  • 保存项目时,它使用[lat,lng]location调用来Timezone gem捕获timezonelocation
  • 我想我需要将它添加到与和timezone相同模型上的额外字段(轨道另存为)(https://stackoverflow.com/a/2533323[lat,lng]datetimeUTC
  • 我需要我的模型将UTC datetime其与其各自的模型相结合,timezone以便当普通用户访问该网站时,网页会选择未来item的位置UTC+timezone datetimes

这听起来可能/正确吗?

如果这听起来令人困惑,请在评论中说,如果可以的话,我会尝试改写得更好。

有人可以为模型提供任何代码来创建与字段virtual attribute相结合的(我认为)吗?UTC datetimetimezone

谢谢