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

ruby-on-rails - STI 和虚拟属性继承 (Rails 2.3)

假设我有一个 STI 关系,其中 Commentable 是超类,而 NewsComment 是子类。在可评论我有:

在新闻评论中:

实例化 NewsComment 时,不会继承 VA self.opinionated。这是为什么?你怎么能“强制”NewsComment 继承自 Commentable?

0 投票
0 回答
489 浏览

ruby-on-rails - Mongoid 循环引用

所以我有一个循环引用问题,我不知道如何解决。所以情况是用户有能力将演员的多部电影列表输入到文本框中。文本保存在虚拟属性中,并在模型的保存回调中解析并提供给模型。理想情况下,我不想更改模型的结构,因为它具有英语意义,并且从数据库的角度来看似乎很正常。

这是结构:

所以结构是:Actor拥有Filmography,它引用了许多Films。并且Film拥有Cast,其中引用了许多演员。问题发生在以下行:

因为演员随后通过 << 运算符再次保存,循环逻辑再次发生

正如每个人都猜到的错误是:

那么如何在没有循环引用堆栈溢出的情况下保存我的文档呢?

更新:一个想法,我认为一个肮脏的解决方案将是一种添加引用而不保存引用对象的方法。

谢谢

0 投票
1 回答
771 浏览

ruby-on-rails - rails 虚拟属性不会从 form_for 提交中读取

我正在尝试实现 Ryan Bate 的 railscast #167 中概述的 Rails 标记模型。http://railscasts.com/episodes/167-more-on-virtual-attributes

这是一个很棒的系统。但是,我无法获得将 tag_names 提交给控制器的表单。tag_names 的定义是:

不幸的是,在我的情况下,@tag_names 从未在表单提交时被分配。我不知道为什么。所以它总是默认为 tags.map(&:name).join(' ')。这意味着我无法创建文章,因为它们的 tag_name 不存在,我也无法在现有标签上编辑这些标签。任何人都可以帮忙吗?

0 投票
3 回答
31142 浏览

ruby-on-rails - Rails 中的默认 getter 和 setter 是什么样的?

我知道我可以编写 attr_accessor :tag_list 来为 Rails 中的对象创建一个虚拟属性 tag_list。这允许在对象的表单中有一个 tag_list 属性。

如果我使用 attr_accessor :tag_list 我可以在模型中对 tag_list 执行操作以从表单中提取和操作数据。

我想知道的是,我将如何编写一个 getter 和 setter 来完全复制 attr_accessor 的默认功能,而不是编写 attr_accessor。例如:

仅供参考我已经尝试过

这不起作用。

0 投票
1 回答
697 浏览

ruby-on-rails - Rails 3嵌套属性?

我有一个使用 IP 地址跟踪服务(服务器)的应用程序。我正在尝试对其进行设置,以便在创建新服务时发生以下情况:

  • 查找所有 IP 地址,如果它们没有 service_id,则它们被归类为可用并返回到新服务页面上的选择框。
  • 用户从选择框中选择一个或多个 IP 地址,填写其余所需的服务数据,然后当他们点击提交时,每个 IP 地址都会更新为刚刚创建的服务的 service_id。(以便将 IP 标记为被占用)。

据我了解,我认为这应该可以通过嵌套属性或虚拟属性实现......但我不确定。

我有这样的模型:

像这样的控制器:

像这样的视图:

如何使用新创建的 service_id 更新每个选定的 IP?

0 投票
3 回答
936 浏览

ruby-on-rails-3 - 虚拟属性未移动到参数内的模型哈希

我在我的 Rails 3.2 应用程序中遇到问题,其中通过 JSON 平稳发送的虚拟属性不在 params 哈希中的正确位置。好吧,这不是我所期望的。我的预期是否正确还有待观察。:)

我有一个使用标准虚拟属性模式的模型,如下所示:

发送到我的控制器的 JSON 如下所示:

需要明确的是,name 和 id 不是虚拟的,rating 是。

在 rails 发挥作用之后,我最终在 params 哈希中得到了这个:

如您所见, id 和 name 使其成为嵌套的 :track 哈希,但 rating 没有。这是预期的行为吗?它打破了在控制器中使用嵌套散列的(有点)标准做法,因为嵌套散列不包含我需要的所有参数。

谢谢你的帮助!

0 投票
1 回答
1039 浏览

ruby-on-rails - Rails:通过虚拟属性查找或创建

我在当前的 Rails 应用程序中遇到了一个棘手的问题。在我的应用中,用户分享照片。照片可以与城市相关联,因此City has_many :photos. 我希望用户能够使用自动完成和自然语言语法将他们的照片与城市相关联。即:纽约,纽约或巴黎,法国。

我想用一个自动完成的文本框来做到这一点,这样如果用户输入“雅典”,他们会看到一个列表:

......如果这个人真的想要“雅典,德克萨斯”,他们可以简单地输入它,它会创建一个新的城市记录。

我的城市模型有田地,name, state, country. State 和 Country 是 2 个字母的邮政编码(我使用 Carmen 来验证它们)。我有一个名为的虚拟属性full_name,它为北美城市返回“城市、州代码”(如纽约州纽约),为所有其他城市返回“城市、国家名称”(如法国巴黎)。

我的问题是,要使文本字段正常工作,我如何创建一个 find_or_create 方法,该方法可以接受带有城市名称和州代码或国家名称的字符串并查找或创建该记录?


更新

受 Kandada 回答的启发,我想出了一些不同的东西:

这现在正在改变我的规格,所以我认为我的问题已经解决了。

0 投票
1 回答
4549 浏览

ruby-on-rails - 虚拟属性验证 Rails 3

我没有对这个 Jquery-tokeninput 或 Rails 虚拟属性做很多事情,但我一直用这个把头撞到墙上。任何帮助或指导表示赞赏。

我的公告模型中有一个虚拟属性阅读器,我需要验证是否存在:

其次是getter和setter:

我真的只需要确保 params[:announcement][:classroom_tokens] 不为空。上面的 validate 调用似乎在看别的东西,因为无论如何它总是空的。我错过了什么?任何帮助是极大的赞赏。

导轨 3.1 红宝石 1.9.2

更新: 如果我这样做

我得到:

0 投票
1 回答
1437 浏览

ruby-on-rails - 用于 attr_accessible/protected 的 Rails 3 配置设置

我刚刚花了很长时间试图解决模型中的虚拟属性问题。原来我只是忘记在我的模型中将它添加到 attr_accesible 中。当然,我应该更早地抓住它,或者更好地通过首先将它添加到 attr_accessible 来开始整个努力。

为了防止这种情况再次发生,如果我尝试批量分配某些东西并在它受到保护/无法访问时对其进行验证,是否有一个配置设置可以标记为在开发中引发异常?我知道我可以使用 setconfig.active_record.whitelist_attributes = true来要求所有人的白名单,但我的问题更多的是基于单个属性。

例如,如果我有一个带有 attr_accessible :name 的模型然后添加 :nickname (虚拟或非虚拟),上面的行不会警告我,并尝试批量分配它以检查存在 => true。我希望它警告我我试图通过批量分配来验证受保护的属性。

0 投票
1 回答
698 浏览

ruby-on-rails-3 - 如何通过虚拟属性获取 ActiveRecord 记录?

在 Rails 3 中,如何通过查找虚拟属性来检索记录?我有一个name列和一个slug对它进行简单修改的​​列(参见下面的代码)。如何通过slugto进行“反向查找” name

我正在尝试为以下find_by_slug方法找到正确的代码:

当我在 Rails 控制台中尝试find_by_slug时,我得到了一个Unknown key: slug错误。

这个问题似乎很相似,但我不确定它是否与我的问题相同。我会很感激一些见解和帮助!