我正在尝试获取 backbone-relational插件处理任务和消息之间的关联。 (一个任务有很多消息)。
信息是从一个标准的 rails/activerecord 站点中提取的,它有一个 task_id 字段作为外键。
问题是, Backbone 关系不会用任务模型上的任何消息填充“消息”字段,除非我在反向关系中将键设置为“task_id”……但这意味着,当访问来自 Message 模型的任务,task_id 字段填充了实际的任务对象,而不是被覆盖的 'task_id' 整数。
我猜想有一种简单的方法可以将 task_id 指定为用于确定父任务的外键,但将该键表示的对象放置在不同的字段中(例如消息对象上的“任务”)。 .但我无法弄清楚如何。任何想法表示赞赏。代码如下
class Backbonescaffolddemo.Models.Task extends Backbone.RelationalModel
paramRoot: 'task'
relations: [{
type: Backbone.HasMany,
key: "messages",
relatedModel: "Backbonescaffolddemo.Models.Message",
collectionType: "Backbonescaffolddemo.Collections.MessagesCollection",
includeInJSON: true
reverseRelation: {
key: "task_id"
includeInJSON: true
}
}]
最佳答案
您可以使用 keySource或 keyDestination解决您的特定问题。
在下面的示例中,假设我们从老式关系数据库中获取数据,其中 Monster 和 Loot_Item 之间存在一对多关系。这种关系由 Loot_Item 表中的 Monster_Id 外键表示。我们还假设我们的 REST 服务没有为我们做任何花哨的数据嵌套,因为这似乎与您问题中的情况相当接近。
现在,让我们将“keySource”设置为我的外键(“Monster_Id”),将“key”设置为我希望实际数据所在的属性的名称(例如,“Monster”)。如果你中断调试器,你会在属性对象中看到实际上有一个名为“Monster”的字段,它确实指向怪物模型数据。嘿,酷!
但是,如果您对那只小狗使用 JSON,您猜怎么着?它把所有的怪物数据都放在了 Monster_Id 中,就像你不想要的一样!嘎!我们可以通过将“includeInJSON”设置为“Monster_Id”来解决这个问题。现在,当它被转换为 JSON 时,它将正确的 ID 放回 Monster_Id 字段,当它将您的数据序列化为 JSON 以发送到服务器时。
问题解决了吗?呃,好吧,实际上,不一定...
警告:这一切听起来都 super 有用,但我发现在这个场景中有一个相当明显的问题。如果您使用的模板引擎(例如 Underscore.js 中的引擎)要求您将模型转换为 JSON,然后再将其传递到模板中,糟糕——您无权访问您的关系数据。 las,我们希望用于消息的 JSON 不一定与我们希望输入模板的 JSON 相同。
关于javascript - 主干关系:关联键将不起作用,除非它与外键相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704093/
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下
目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi
📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年
我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来
我目前正在尝试学习RubyonRails和测试框架RSpec。assigns在此RSpec测试中做什么?describe"GETindex"doit"assignsallmymodelas@mymodel"domymodel=Factory(:mymodel)get:indexassigns(:mymodels).shouldeq([mymodel])endend 最佳答案 assigns只是检查您在Controller中设置的实例变量的值。这里检查@mymodels。 关于ruby-o
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我想获取主题名称与搜索关键字匹配的所有配置文件。现在我正在加载所有配置文件。我需要知道如何实现它。非常感谢任何帮助。配置文件.rbhas_many:categorizationshas_many:subjects,through::categorizations主题.rbhas_many:categorizationshas_many:profiles,through::categorizations分类.rbbelongs_to:profilebelongs_to:subjectviews/search/index.html.erb#searchform'get'do%>nil%>#
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam