在过去的几天里,我一直在阅读文档和观看Mongo DB特有的截屏视频,当这样的解决方案比典型的pg或mysql环境更好时,我感到很茫然.
具体来说,我的问题是在什么情况下(用例会很好)你想要去nosql路线吗?
谢谢!
我有一个看起来像这样的Artist模型:
# app/models/artist.rb
class Artist < ActiveRecord::Base
# Relationships
has_many :releases
has_many :songs, :through => :releases
has_many :featured_songs, :through => :releases,
:class_name => "Song",
:source => :song,
:conditions => { 'releases.featured', true }
end
Run Code Online (Sandbox Code Playgroud)
检索featured_songs非常有效.这里的问题是我无法向艺术家添加新的feature_song,因为出于某种原因,'featured'属性被设置为'nil'.
这就是我正在尝试的:
ruby-1.9.2-p180 :004 > a = Artist.first
ruby-1.9.2-p180 :005 > a.featured_songs.create(:title => "Title", :user => User.first)
Run Code Online (Sandbox Code Playgroud)
实际结果是:
ruby-1.9.2-p180 :004 > a = Artist.first
ruby-1.9.2-p180 :005 > a.featured_songs.create(:title => "Title", :user => User.first)
User Load (0.9ms) SELECT `users`.* FROM `users` LIMIT 1
SQL (1.0ms) BEGIN
SQL …Run Code Online (Sandbox Code Playgroud) activerecord ruby-on-rails data-modeling relationship has-many-through
以下是导致错误的原因示例:
ruby-1.9.2-p290 :004 > Post.new(title: "new").save!
(0.3ms) BEGIN
post Load (0.3ms) SELECT `posts`.* FROM `posts` WHERE (`slug` = 'new' OR `slug` LIKE 'new--%') ORDER BY LENGTH(`slug`) DESC, `slug` DESC LIMIT 1
(0.3ms) SELECT 1 FROM `posts` WHERE `posts`.`lsi_post_id` = BINARY '' LIMIT 1
(0.1ms) ROLLBACK
ActiveRecord::RecordInvalid: Validation failed: Friendly is reserved
Run Code Online (Sandbox Code Playgroud)
我想在Post模型中添加一些东西,可能会用" - "替换一个新单词,或者沿着那些行替换,但我不知道从哪里开始.
谢谢!
我有大量围绕学校,学生,老师,班级,地点等的相关数据
我面临着客户提出的第四项挑战; 他们想要报道一切.这意味着他们希望能够以任何方式交叉引用数据点,我认为我只是编写一个漂亮的查询构建器.:/
这个堆栈问题旨在征求关于如何精美地构建报告界面的意见.
任何建议,参考,例子,jQ插件等都会很棒.
谢谢!
我正在使用Rails和postgres.
我有几个使用STI的模型,我想知道我应该在表上放置索引以及为什么?
例如,假设我有以下设置:
class Comment < AR; end
class MovieComment < Comment; end
class MagazineComment < Comment; end
# Fake Comment Table
id:integer
title:string
body:text
type:string
Run Code Online (Sandbox Code Playgroud)
谢谢!
database postgresql ruby-on-rails single-table-inheritance sti
作为概念证明,这里首先是一些控制台输出:
ruby-1.9.2-p180 :010 > x = "<span id='c_3'>s</span>"
=> "<span id='c_3'>s</span>"
ruby-1.9.2-p180 :011 > helper.simple_format(x)
=> "<p><span>s</span></p>"
Run Code Online (Sandbox Code Playgroud)
原因是Rails helper方法在执行的最后simple_format调用该sanitize方法,该方法剥离属性.
我知道这sanitize将允许您指定不应被剥离的属性.我的问题是:是否有可能通过simple_format以某种方式传递"white listed"属性(在本例中为id)?
谢谢!!
大约一个小时前,我问了关于rails关联的问题:关于Rails中正确关联的
问题
从这个问题中得到的答案让我更深入地思考了人际关系,并且我想向SO社区介绍这种情况.
我之前的问题使用了诗人,诗歌和印刷作为模型......对于这一个,让我们使用音乐产业:
模型是:
以下陈述应视为真实:
在深入研究这个问题时,我立即看到像Artist和Genre这样的模型可以"重复使用".我们不想多次保存艺术家的信息 - 例如,如果我们有一首主要艺术家和特色艺术家的歌曲,艺术家的信息应该存在于DB的"艺术家"表中.
此外,在查看"特色"艺术家方面(声明#2)时,似乎我们还有一个应该在关联上的附加属性 - 类似于"特色"标志.
以下是我认为应该如何设置关联 - 以及我的帖子的顶点....这是正确的,我怎样才能让它变得更好?
class Artist < ActiveRecord::Base
has_and_belongs_to_many :albums
has_and_belongs_to_many :genres
has_many :featurings
has_many :features, :through => :featurings, :conditions => "featured = true"
end
class Album < ActiveRecord::Base
has_and_belongs_to_many :artists
has_and_belongs_to_many :songs
has_many :featurings
has_many :featured_artists, :through => :featurings, :conditions => "featured = true" …Run Code Online (Sandbox Code Playgroud) activerecord ruby-on-rails associations has-many has-many-through
我正在尝试学习使用远程表单并使用Post模型has_many评论的应用程序示例.
假设我使用通用rails脚手架来创建/设置帖子/评论模型,控制器,默认视图,路线等, - 我应该app/views/posts/show.html怎么样?
具体我很困惑:
f.hidden_field :post_id, :value => @post.id 谢谢!
我基本上把一个应用程序放在一起做一个超级简单的问题=>回答测试,试图了解有关rails的更多信息.
即:问题:"你的狗叫什么名字?" 答案:"Doggington"
我有一个带有两个简单属性的Question模型:question:string correct_answer:string
我在这里的斗争是如何将REST主体应用于此 - 具体来说,当我检查用户的输入(回答)以查看他是否正确的问题时.
我不确定我是否应该做一些像修改"show"方法(或任何其他动作)来接受发布到它的答案的值......并且看起来像我应该在我的questions_controller中创建一个名为"verify_answer"的新方法" 或类似的规定.
这打破了REST.
你怎么看?
谢谢!
我有一个文本字符串,我试图选择使用jQuery的跨度.我想抓住没有将元素添加到dom的跨度 - 如果可能的话?
在阅读了jquery文档后,我假设我可以通过将字符串包装在jquery选择器标记中来创建片段,然后使用.find()来查找我想要的元素.
我的代码与此类似,但从最后一行的外观来看,显然没有选择任何跨距; 任何帮助将不胜感激:
// 'text' is normally generated automatically...
// just made it an escaped string for example purposes.
var text ="<span id=\"blah1\">Y</span><br/><span id=\"blah2\">o</span><br/>";
var spans = $(text).find('span');
console.log(text); // => <span id="blah1">Y</span><br/><span id="blah2">o</span><br/>
console.log(spans.length); // => 0
Run Code Online (Sandbox Code Playgroud)
谢谢.
ruby ×3
activerecord ×2
database ×2
javascript ×2
associations ×1
controller ×1
crud ×1
css ×1
forms ×1
friendly-id ×1
has-many ×1
html-helper ×1
jquery ×1
mongodb ×1
nosql ×1
postgresql ×1
relationship ×1
reporting ×1
rest ×1
sti ×1
ujs ×1
use-case ×1
validation ×1
views ×1