草庐IT

sinatra-activerecord

全部标签

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

windows - 在 Windows 上启动 Sinatra 应用程序时,shotgun gem 会爆炸

Sinatra应用程序:require"rubygems"require"sinatra"get'/'do"Helloworld.It's#{Time.now}attheserver!"endWindowsXP和最新版本的mongrel、sinatra、shotgun。ruby1.8.6运行shotguntest_app.rb结果为C:\Files\sites\sinatra>shotguntest.rb==ShotgunstartingRack::Handler::Mongrelonlocalhost:9393ThuDec0316:51:37-08002009:Readerror:#

javascript - Angular.js 与 Sinatra

我想在我的Sinatra应用程序中使用Angular.js。不幸的是,我找不到任何有用的提示。我确实找到了一些Rails示例,但是与Sinatra的简约哲学相比,我总是发现Rails和Padrino很难处理。我看了很多视频(通过谷歌搜索angular.js找到的),但我仍然觉得很难申请到Sinatra。迄今为止我找到的最全面的教程是one来自yearofmoo.com。但我仍然迷失了尝试将其应用于Sinatra,并且破解我的出路似乎不是一个选项,因为任何地方的简单错误都可能让我偏离正确的道路。我迷路了,我承认!!如果分享任何基于您尝试做类似事情的经验的帮助,我们将不胜感激。在这一点上,

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。谢谢。 最佳答案