草庐IT

ActiveRecord3

全部标签

ruby-on-rails - 是什么导致了这个 ActiveRecord::ReadOnlyRecord 错误?

接下来是this之前的问题,已回答。我实际上发现我可以从那个查询中删除一个连接,所以现在工作查询是start_cards=DeckCard.find:all,:joins=>[:card],:conditions=>["deck_cards.deck_id=?andcards.start_card=?",@game.deck.id,true]这似乎有效。但是,当我尝试将这些DeckCards移动到另一个关联时,我收到ActiveRecord::ReadOnlyRecord错误。这是代码forplayerin@game.playersplayer.tableau=Tableau.news

ruby-on-rails - 复制 activerecord 记录的最简单方法是什么?

我想制作一个ActiveRecord对象的副本,更改过程中的单个字段(除了id之外)。实现此目的的最简单方法是什么?我意识到我可以创建一个新记录,然后遍历每个字段,逐个字段地复制数据-但我认为必须有更简单的方法来执行此操作。也许是这样的:new_record=Record.copy(:id) 最佳答案 要获取副本,请使用dup(或克隆#rails>=3.1new_record=old_record.dup#rails然后您可以更改任何您想要的字段。ActiveRecordoverridesthebuilt-inObject#clon

ruby-on-rails - 如何配置与非 ActiveRecord 模型的 has_many 关联

我的Rails应用程序在数据库中存储了一个普通的ActiveRecord“帐户”模型。该模型会将URL存储到定义了一些其他对象的远程XML文件中。例如,Accounthas_many:galleries但Gallery模型仅由XML文档中的节点定义。那么,如何让/accounts/1/galleries显示该帐户的XML中的画廊?如何建立这种关系?我知道如何制作基本的非AR模型,但我不确定如何定义关联或者我是否需要创建图库模型。 最佳答案 如果关联已知,您可以使用关联名称在Account中简单地创建实例方法。例如:defgaller

ruby-on-rails - XML Schema (XSD) 到 Rails ActiveRecord 映射?

我正在寻找一种将XML架构定义文件转换为ActiveRecord建模数据库的方法。有谁知道恰好可以执行此操作的工具?到目前为止,我发现的最佳方法是首先将XSD加载到RDBMS(如postgres或mysql)中,然后让Rails连接以执行rakedb:schema:dump。然而,这只会给我留下一个没有Rails模型的数据库。将这个基于xsd的数据库导入/加载到Rails中的最佳方法是什么? 最佳答案 您是否尝试使用gemmagic_model_generator从数据库生成模型?参见:http://magicmodels.ruby

ruby-on-rails - 使用 ActiveRecord::Serialization.to_xml 构建动态字段

我很好奇人们使用AR的to_xml()从Controller构建非实体字段(例如,不是您正在序列化的模型的属性,而是可能在流程中利用属性)的体验。to_xml似乎为此提供了一些选项。一种是传递对被操作对象的方法的引用:在序列化过程中,调用这些方法并将它们的结果添加到生成的文档中。我想避免这条路径,因为一些生成的数据虽然取决于对象的属性,但可能超出模型本身的范围——例如,为特定项目“显示”操作构建URL。另外,它需要太多的深思熟虑。我希望能够通过调整来自Controller的to_xml代码来更改生成的文档。我也不想在对象中声明方法的麻烦。覆盖每个对象中的to_xml也是如此。其他两个选

ruby-on-rails - 覆盖 to_xml 以收集 ActiveRecord 对象

好的,我知道您可以为ActiveRecord对象的单个实例覆盖to_xml方法,它对我来说工作得很好。但是我将如何着手覆盖对象集合的to_xml方法?假设对于任务模型实例,我实现了如下所示的to_xml。defto_xmlsuper(:methods=>[:tag_list],:include=>{:project=>{:include=>{:folder=>{}}},:folder=>{}})end当单个任务被序列化为xml时工作得很好。但是当我的代码运行收集任务时,如下面的代码render:xml=>@tasks.to_xml我明白了wrongnumberofarguments(1

ruby-on-rails - to_xml 不适用于通过 Rails ActiveRecord habtm 引用返回的对象

我有两个Rails事件记录类,School和Instructor通过has_and_belongs_to_many关系链接。我需要在我的instructors_controller中查询特定学校的讲师并返回xml格式的响应。因此,在索引方法中我有这个代码片段:school=School.find(params[:school_id])@instructors=school.instructors及以后:respond_todo|format|format.html#index.html.erbformat.xml{render:xml=>@instructors}format.json

ruby - dynamic_matchers.rb:55:in `method_missing':ActiveRecord::Base:Class 的未定义方法 `migration_error=' (NoMethodError)

我在Windows上。Rubyv.1.9.3p392/Railsv.3.2.13-这是MichaelHart的RubyonRails教程第2章中的demo_app项目。当我发出“railsgeneratescaffoldUsername:stringemail:string”时出现此错误知道如何解决这个问题吗?C:\ruby\rails_projects\demo_app>railsgeneratescaffoldUsername:stringemail:stringinvokeactive_recordC:/RailsInstaller/Ruby1.9.3/lib/ruby/gems

php - CodeIgniter:通过 ActiveRecord 结果 ID 将 $subresult 添加到对象 $result

我在向Codeigniter中的结果添加“子结果”时遇到问题。不确定如何添加到此对象。$result->{$record_id}->threads=$threads;应该等于这样$result->1->threads=$threads;但我无法让它工作...我不是OOP的新手,但这是我第一次尝试这样做。db->select(array('record_id','record_data','record_date',));$this->db->from('records');$sql=$this->db->get();$records=$sql->result();foreach($re

php - Yii ActiveRecord - 有没有办法只更新脏属性?

在我的应用程序中,我有2个几乎同时运行并更新相同AR模型的进程。当一些过程看起来没有完成时,我遇到了这个错误,但单独调试它们没有出现错误。然后我明白了问题可能发生在下一个案例中:进程A选择行X进程B选择行X进程B更新行X进程A更新行X在所描述的情况下,进程A将覆盖进程B写入的所有内容。B和A都更新了不同的属性。有什么方法可以避免这种覆盖吗?是否有某种机制使AR仅更新“脏”属性而不是所有模型属性?请不要在不使用AR的情况下向我解释解决方案。我明白。但我想听听是否有一些解决方案可以让我正确地进行所需的更新,仍然使用AR。谢谢。 最佳答案