草庐IT

saved_instance

全部标签

ruby-on-rails - 设计身份验证 gem : How to save the logged in user id?

我在我的RubyonRails3应用程序中使用DeviseRubygem。当登录用户创建我的一个模型时,我想将他们的用户ID保存为创建它的人。我该怎么办? 最佳答案 创建一个迁移文件,其中包含一个名为user_id的integer类型的列,这是存储关联的位置。(有关如何执行此操作的详细信息,请参阅migrationguide)。在您的模型中,添加:belongs_to:user(有关详细信息,请参阅associationsguide)在模型的Controller中,在创建操作中添加@your_model.user=current_u

javascript - 使用 Backbone.js 填充在 save() 上发送的 JSON 对象

我正在尝试将一个对象从Backbone.js发送到我的Rails后端。目前,当我在我的模型上调用save()时,它会将此发送到服务器:{"program_id":1,"issuer_id":4}但Rails期望它采用以下格式:{"program_issuer_link":{"program_id":1,"issuer_id":4}}当我在我的模型上调用save()时,有什么方法可以对从Backbone.js发送到Rails的JSON对象进行封装吗?我查看了文档,但找不到任何相关信息。 最佳答案 如果您正在使用backbone-rai

ruby-on-rails - Rails 内存泄漏 : controller class holding a reference to instance

我在Rails4.2.6应用程序中发生内存泄漏。一个Controller分配了一个很大的GaragesPresenter对象作为实例变量,在请求完成后应该取消引用并进行垃圾收集。但是,我发现这永远不会发生。defshow@garage=GaragesPresenter.new(@garage,view_context)respond_todo|format|format.htmlendend我看到对GaragesPresenter的引用实例由GaragesController持有实例,GaragesController持有该实例类(class)。这在请求完成很长时间后是正确的,GC.s

ruby - 创建 ActiveRecord 模型时出现问题 : data missing from save

我在开发的Sinatra应用程序中使用ActiveRecord在数据库中创建新模型行时遇到问题。正在创建有问题的对象,没有任何错误(使用保存!,没有引发异常),但我为保存指定的大部分数据都不存在。classProjectMeta对来self正在发送的项目对象以及我正在创建的新元对象的数据的所有检查都表明数据存在。但是当我在保存前后执行meta.inspect时,它显示所有数据(project_id除外)都处于默认状态(零)。我还检查了meta.errors.nil?果然,保存后没有任何错误。最令人费解的是,如果我回过头来获取一个具有该project_id的新元实例并将数据放入其中,那么

ruby - 更改 ruby​​ 方法上下文/使用 instance_exec 调用方法

首先,对于简短版本:方法定义不就是一个block吗?为什么我不能做类似的事情:obj.instance_exec(&other_obj.method(:my_method))目标是在单独类的实例上下文中运行某些模块方法?尽管调用了“instance_exec”,但该方法似乎并未在“obj”的上下文中执行。我能弄清楚如何完成此操作的唯一方法是将“my_method”的所有代码包装在一个proc中,然后改为按以下方式调用:obj.instance_eval(&other_obj.my_method)但我想避免在procs中封装我所有的模块方法。现在,对于长版本:我正在尝试创建一个模块化的外

ruby-on-rails - After_save 带参数

这是我的模型代码:after_create:notify_cards_createafter_destroy:notify_cards_destroyafter_update:notify_cards_updatedefnotify_cards_updateWebsocketRails[:home].trigger'cards',{type:'update',card:self.as_json({small:true})}enddefnotify_cards_createWebsocketRails[:home].trigger'cards',{type:'create',card:s

ruby-on-rails - 在 before_save Hook 中更改 ActiveRecord 属性值

我需要修复ActiveRecord属性的编码,并决定在before_saveHook中进行。在这一点上,我注意到了一个意想不到的功能。当我想更改属性的值时,简单地使用attribute_name=XY并没有像我预期的那样工作。而不是我需要使用self[:attribute_name]=XY。到目前为止还没有识别出这种行为,我使用了AR.attribute_name=XY。这是什么原因?这种行为与钩子(Hook)或其他东西有关吗?感谢您的解释。 最佳答案 这实际上是Ruby的“特性”:defvalue=(x)pxenddefrunva

ruby - Rails 事件记录 : Calling Build Method Should Not Save To Database Before Calling Save Method

我有一个简单的用户模型classUser还有一个简单的user_profile模型classUserProfile问题是当我调用下面的构建方法时,没有调用保存方法,我最终在数据库中得到了一条新记录(如果它通过了验证)classUserProfilesController任何人都知道发生了什么事。这个方法的定义如下,但它仍然为我保存build_association(attributes={})Returnsanewobjectoftheassociatedtypethathasbeeninstantiatedwithattributesandlinkedtothisobjectthro

ruby - ruby 中的类可以使用@class_instance_variable 而不是@@class_variable 来存储实例化对象的数量吗?

我正在尝试在定义这些对象的类中对给定类的对象实例进行计数。首先我知道代码反射和ObjectSpace.each_object,但我宁愿不使用反射并让类本身能够“照顾”自己。我环顾四周,我发现的所有解决方案似乎都在类定义中使用了@@class_variables,例如,这个问题的公认答案:HowtogetclassinstancesinRuby?虽然我一直在阅读,但我发现ruby​​中的类变量在某些情况下可能表现得非常糟糕......最大的原因是:Aclassvariabledefinedatthetop‐levelofaprogramisinheritedbyallclasses.It

ruby - instance_eval 和 class << self 之间的区别?

我似乎无法理解这两个“构造”之间的确切区别。在我看来,以下小脚本应该输出相同的内容三次:classExampleputsselfclass但是,输出是:Example#Example这是我的理由:Example是Class的实例,所以self在类主体中指的是;class套self随便什么obj在给定的block中,在我的例子中是Class的实例那是Example(这是我可能错的地方);instance_eval在给定实例中运行block,因此,在我的例子中,这与将代码直接放入类主体中的block几乎相同。我目前的猜测是class在Example之间插入一个幽灵类和Class并将self