草庐IT

omatically-sync-many-many-table-w

全部标签

Ruby 1.9.3 - CSV.table 如何知道 CSV 文件中是否没有 header ?

我一直在用CSV.table做一些测试。我有两个几乎相同的小CSV文件,但其中一个缺少标题行。当我对带有标题行的CSV文件运行CSV.table时,一切都按预期进行。当我针对没有标题行的CSV文件运行它时,我得到:NoMethodError:undefinedmethod`encode'fornil:NilClass我用不同类型的数据、不同类型的header尝试了这个,并得到了相同的结果。我很好奇CSV.table的魔力。如果我使用CSV.parse并将标题设置为true,那么无论如何它总是使第一行成为标题。所以,我一直在使用CSV.table来检查导入的CSV文件是否有标题行,但我对

ruby - Rails 3 Order By Count on has_many :through

我有一个应用程序,我可以在其中列出项目并为每个项目添加标签。模型Items和Tags是这样关联的:classItem:taggingsendclassTagging:taggingsend因此,这种多对多关系允许我为每个Item设置n标签,并且同一个标签可以多次使用。我想列出所有标签,这些标签按与该标签关联的项目数排序。更多使用的标签,首先显示。较少使用,最后。我该怎么做?问候。 最佳答案 Tag.joins(:taggings).select('tags.*,count(tag_id)as"tag_count"').group(:

ruby-on-rails - mongoid中的has_many、has_and_belongs_to_many和embeds_many到底有什么区别?

我知道这不是编程问题,我找不到非常清晰和描述性的解决方案。 最佳答案 Mongoid的documentation很清楚:Embeddedrelationsdescribedocumentswhoarestoredinsideotherdocumentsinthedatabase.Referencedrelationsdescribedocumentsthatreferencedocumentsinanothercollectionbystoringforeignkeydata(usuallyanid)abouttheotherdoc

ruby-on-rails - 使用 has_many :through and build

我有三个模型,都用于has_many:through关系。它们看起来像这样:classCompany这加载很好,并且连接是为查询而构建的。但是,每当我做类似的事情时@company=Company.last@user=@company.users.build(params[:user])@user.save#=>true@company.save#=>trueUser记录和CompanyUser记录被创建,但是company_idCompanyUser中的字段记录设置为NULLINSERTINTO`companies_users`(`company_id`,`created_at`,`

轨道上的 ruby : How to create table for a new model

我用railsgeneratemodelmynewmodelstring:namestring:description生成一个新模型。如何将这个新模型部署到我的开发数据库中?我的sqlite数据库中已经有一堆数据库。我试过了rakedb:migrate在db中生成这个新表似乎有问题。更新:添加了错误信息==CreateMynewmodels:migrating===============================================--create_table(:mynewmodels)rakeaborted!Anerrorhasoccurred,thisandal

ruby-on-rails - PGError : ERROR: relation "table_name" does not exist

我正在尝试将一个简单的应用程序推送到heroku并运行:herokurakedb:migrate但是我得到以下错误:rakeaborted!PGError:ERROR:relation"posts"doesnotexist:SELECTa.attname,format_type(a.atttypid,a.atttypmod),d.adsrc,a.attnotnullFROMpg_attributeaLEFTJOINpg_attrdefdONa.attrelid=d.adrelidANDa.attnum=d.adnumWHEREa.attrelid='"posts"'::regclass

ruby-on-rails - Has_Many :Through or :finder_sql

我已经确定了我想要的东西,但我似乎无法以Rails设计师正在寻找的方式获得它。基本上,我有(请搁置多元化/等问题):人类关系(parent、后代)我正在尝试获取单亲的所有后代,以及许多后代的单亲(假设每个后代只有一个parent)。我可以在模型中通过以下方式做到这一点:has_one:parent,:through=>:relationships,:foreign_key=>:human_id,:source=>:source_humanhas_many:offsprings,:finder_sql=>'SELECTDISTINCToffsprings.*'+'FROMhumansof

ruby-on-rails - 将方法委托(delegate)给 has_many 关联会忽略预加载

是否可以将方法委托(delegate)给Rails中的has_many关联,并且仍然将预加载的数据保存在该关联上,同时遵循得墨忒耳法则?目前在我看来,你被迫选择一个或另一个。也就是说:通过不委托(delegate)来保留预加载的数据,或者丢失预加载的数据和委托(delegate)。示例:我有以下两个模型:classUser注意:User#all_blogs_have_title?做的事情与all_have_title?的委托(delegate)方法完全相同。据我了解,以下内容违反了得墨忒耳定律。但是:它会保留您预加载的数据:user=User.includes(:blogs).firs

ruby-on-rails - 尝试将本地数据库推送到 Heroku 后出现 "ActionView::Template::Error (Unknown primary key for table"

对于我通过Heroku托管的Ruby-on-Rails应用程序,我最近下载了一个备份,在本地恢复它,然后从外部来源将数据添加到数据库中。一切正常。在使用herokupg:pushHEROKU_DATABASE_URL--app将更新后的数据库推送到Heroku之后该应用程序运行良好,我可以看到新添加的数据。但是今天当我尝试在Heroku上登录该应用程序时,我收到了错误消息。在我的日志文件中,我看到了这个错误:ActionView::Template::Error(Unknownprimarykeyfortable...根据这篇SO帖子:Getting"Unknownprimarykey

ruby-on-rails - 自引用问题 has_many :through associations in Rails

我今天正在阅读有关自引用has_many:through数据情况的文章,因为我正在尝试构建一个使用它们的Rails应用程序。我找到了这个examplesituation在互联网上,我对此有疑问。让我从这个人的博客中发布这个示例代码:create_table:animalsdo|t|t.string:speciesendcreate_table:huntsdo|t|t.integer:predator_idt.integer:prey_idt.integer:capture_percentendclassAnimal'predator_id',:class_name=>'Hunt',:d