问题标签 [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 回答
467 浏览

ruby - @model.map(&:attributes) 和虚拟属性

我如何使用 @model.map(&:attributes) 来制作它,以便在我将 @model 呈现为 json 时显示虚拟属性

0 投票
2 回答
11177 浏览

ruby-on-rails - 在 Rails 模型中设置和获取虚拟属性

我正在寻找一种 Rails-y 方法来处理以下问题:

事件模型中的两个datetime属性:

我想使用 3 个字段以表单形式访问它们:

我遇到的问题是如何使实际虚拟属性保持“同步”,以便可以通过表单和/或直接通过start_at&更新模型end_at

哪个有效:

直到直接设置实际属性(end_at设置回end_time验证):

我的假设是我还需要自定义“实际”属性的设置器,但我不确定如何在不破坏默认行为的情况下做到这一点。想法?也许有更多的“Rails-y”“回调-y”方式来处理这个?

0 投票
4 回答
11446 浏览

php - 在 Yii 框架中,如何组合列并在下拉列表中显示为显示字符串

我的视图中有一个dropDownList,它是从表中填充的clients,该表包含诸如first_name,等列last_nameid现在我想将first_nameandlast_name显示为显示文本和id下拉列表中的值,我完成了idas value 和first_nameas显示文本,但在这里我想组合这些列(first_namelast_name)并用作显示文本。

在模型中

在视野中

0 投票
1 回答
80 浏览

ruby-on-rails - 在按 created_at 排序的 blog.articles 数组中的正确位置插入转发的文章

编辑:实际上我只是决定反对我的转发方式,而是决定通过复制并从文章中创建一个全新的记录来实现它,然后添加一个 reblogged: true 列。在我看来,逻辑上有点清晰,它避免了下面列出的所有问题。


在一个博客应用程序中,我实现了通过一个带有两个外键的加入转发模型来转发别人博客文章的可能性。

然后在我的博客展示操作中,我将带有 blog.reblogged_articles 的 blog.articles 添加到单个文章数组中。然后我按每个元素的 created_at 属性对该数组进行排序。

但是,对于转发的文章,我更愿意使用他们转发连接模型的 created_at 属性,以便转发的文章最初会出现在博客的顶部。转发的文章应始终在博客中获得其位置,就好像它是由博客所有者创建的一样。但目前,如果文章是在 3 年前创建的,则博客底部可能会出现重新博客的文章。

在将两个数组放在一起之前,我可能需要修改我的 reblogged_articles 数组的 created_at 属性。但是我该怎么做呢?

编辑:只是一个澄清的例子:

博客 id 1:
文章 id 1,created_at:一年前。
文章 id 2,created_at:一个月前。
文章 ID 3,created_at:一周前。
文章 id 4,created_at:一天前。

博客 id 2:
文章 id 5,created_at:一天前。
文章 id 6,created_at:一小时前。
文章 id 7,created_at:30 分钟前。
文章 id 8,created_at:大约 10 分钟前。

现在,博客 2 转发博客 1 的文章 1。我希望这篇文章显示在博客 2 的顶部,就好像它是刚刚创建的一样。但是,由于该文章实际上是在一年前创建的,它将显示在博客 2 的底部。我该如何解决这个问题?

根据连接模型 Reblog 的 created_at 而不是文章本身的 created_at 将重新记录的文章置于“正确”位置的最聪明的方法是什么?

0 投票
1 回答
310 浏览

ruby-on-rails-3 - 具有多个参数的虚拟属性

我有以下功能很好

我只是在学习虚拟属性,并且在弄清楚这个函数的 setter 版本时遇到了一些麻烦。我将如何实现这个功能......

谢谢!

更新:我想出了以下内容,这是最好的方法吗?

0 投票
1 回答
536 浏览

ruby-on-rails-3 - UnknownAttributeError 使用构建虚拟属性

我有一个包含虚拟属性的嵌套表单:card_number 和:card_verification。当我尝试在控制器更新操作中使用这些构建时,我得到 ActiveRecord::UnknownAttributeError。

模型有一个简单的 has_one 关系,其中约会 has_one 订单

我正在生成这样的表格:

并在控制器中构建:

有了这个,Can't mass-assign protected attributes: card_number, card_verification当我尝试使用参数提交更新时出现错误:

没有包含在表单中的 :card_number 和 :card_verification 值,一切正常。

有谁知道这里出了什么问题?

编辑:

我可以得到这个工作:

但这似乎有点笨拙。还有其他方法可以解决这个问题吗?

0 投票
1 回答
357 浏览

arrays - Mongoid空间虚属性不持久

我正在使用Mongoid Spacial在 Place 模型上存储坐标。我在客户端进行地理编码,并发送两个文本字段:纬度和经度。字段名称正确,这似乎是服务器端问题,因为坐标也无法在 Rails 控制台中保持不变。

模型

我知道坐标字段是一个数组,并且它作为一个对象返回。

我可以使用以下命令成功设置坐标:

self.coordinates = [-98.765432,12.345678]

但不是这些命令:

self.coordinates[:lng] = -98.765432

self.coordinates[0] = -98.765432

我怎样才能编写 setter 来完成这项工作?

0 投票
4 回答
3675 浏览

ruby-on-rails - 通过定义虚拟属性在 Rails 表单验证中获取 current_user

Rails 表单验证旨在最容易地进入模型。但我需要确保当前用户具有提交帖子所需的权限,并且该current_user变量只能在控制器和视图中访问。

我在一个类似的问题中找到了这个答案:

您可以为 定义一个:user_gold虚拟属性Book,将其设置在您可以访问的控制器中current_user,然后将其合并到您的Book验证中。`

如何使用我的帖子和用户控制器进行设置,以便current_user在模型中可以访问变量?

解决方案:

正如@Deefour 的回答所指出的那样,从应用程序设计的角度来看,这整个事情都是错误的。我更改了它,因此除非条件为真,否则我的视图不会呈现表单。

0 投票
1 回答
560 浏览

ruby-on-rails - Rails 3:未设置虚拟属性

我有以下User具有artist_attributes虚拟属性的模型:

这是艺术家模型:

问题是没有设置虚拟属性。例如,这里是我的用户控制器:

这是提交的表格:

为什么没有设置artist_attributes虚拟属性?是因为嵌套形式吗?

更新

这是我提交表单后的参数哈希:

0 投票
1 回答
586 浏览

ruby-on-rails-3 - How to access virtual attributes of model in a nested form with Rails

I have a basic nested form. I want to access a virtual attribute for the nested form's model.

In the nested form I want to put something like:

And I want the following to give me the balance to date.

nested_f.balance_to_date(:dated)

Or to be able to do something like

Running the code as shown here gives me:

Other than the virtual attribute error, this form works as expected.

The code should produce an editable table of transactions with the balance up to that point. ( [xx] are my way of showing input fields ).

Any advice on how to access and display that virtual attribute of the model and the date from the current record being displayed would be really appreciated. I hope I haven't duplicated a previous question.

I'm using Rails 3.2.12 and Ruby 1.9.3.

Thanks! Phil