问题标签 [activemodel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 3:检查嵌套属性是否已更改?
只是想知道 Rails 中是否有一种方法可以识别保存表单时嵌套属性是否已更改?
例如:我有一个名为“shop”的模型,其中包含用于交付区域的嵌套复选框。
每次“商店”发生变化时,我都想知道那些嵌套的“送货区域”属性是否发生了变化。有任何想法吗?
ruby-on-rails - 具有类型和转换的结构
我正在尝试在 Ruby 中完成以下任务:
我希望它同时接受:
和
也就是说,我希望它自动进行数据转换。
我知道 Ruby 是动态的,我不应该关心数据类型,但这种转换会很方便。
我要问的是类似于 ActiveRecord 已经做过的事情:将字符串转换为表列中定义的数据类型。
在搜索 ActiveModel 后,我无法弄清楚如何对一些进行此转换的 TableLess。
毕竟我认为我的问题可能需要 ActiveModel 模块提供的更少。
当然,我可以自己实现一个提供此转换功能的类,但我宁愿知道这还没有完成,以免重新发明轮子。
提前谢谢。
ruby-on-rails - 如何将参数传递给Rails中的委托方法
我想要一个仪表板来显示多个模型的摘要,并且我使用 Presenter 实现了它,而没有它自己的数据。我使用一个 ActiveModel 类(没有数据表):
通过代表,我希望能够打电话Dashboard.address
回来Account.find_by_user_id(Dashboard.user_id).address
。
如果 Dashboard 是一个 ActiveRecord 类,那么我可以声明Dashboard#belongs_to :account
并且委托会自动工作(即,Account 会知道它应该从具有user_id
等于to user_id
Dashboard 实例的帐户返回地址属性)。
但是 Dashboard 不是 ActiveRecord 类,所以我不能声明belongs_to
. 我需要另一种方法来告诉 Account 查找正确的记录。
有没有办法克服这个问题?(我知道我可以伪造 Dashboard 以获得一个空表,或者我可以将 User 的实例方法重写为带参数的类方法。但这些解决方案都是 hack)。
谢谢你。
ruby - ActiveModel 字段未映射到访问器
使用 Rails 3 和 ActiveModel,我无法使用 self. 获取基于 ActiveModel 的对象内的属性值的语法。
在下面的代码中,在 save 方法中,self.first_name 的计算结果为 nil,其中 @attributes[:first_name] 的计算结果为 'Firstname'(初始化对象时从控制器传入的值)。
在 ActiveRecord 中这似乎可以工作,但是在 ActiveModel 中构建相同的类时,它就不行了。您如何在基于 ActiveModel 的类中使用访问器来引用字段?
ruby-on-rails - 如何测试自定义验证器?
我有以下验证器:
我希望能够在我的 lib 目录中的 RSpec 中对此进行测试。到目前为止的问题是我不确定如何初始化EachValidator
.
ruby-on-rails - Rails 模型变量意外更改
在这里发疯。任何指点都感激不尽!
我有一个交付模型,我正在尝试添加一种方法来根据交付线更新交付状态。该函数在模型类中定义,delivery_state 是模型属性之一:
我在日志中看到的是在两logger.debug
行之间,delivery_state 已被清除:
如果我注释掉上面代码中标记的行,它似乎可以正常工作:
但是,刷新后我可以看到在此之后仍然预计交货?
ruby-on-rails - 在rails中创建多个具有关系的对象
我是新来的铁路。
我有一个注册表单,用户可以在其中创建项目,同时注册。项目应该被创建,并且新用户成为项目的“管理员”。
我有以下型号:
我正在寻找创建封装模型层中的关系设置,并使其易于在视图中为关系中的所有对象创建表单、显示错误等。
希望我很清楚,新手到 rails 。谢谢
ruby-on-rails - 在返回时强制转换 ActiveModel 属性
在我的 Rails 3.1.1 项目中,我有一个与 API 对话的 ActiveModel(摘自 Paul Dix 的书,为便于阅读而缩短了):
@job
我在我的控制器中实例化new
操作(company_id
是路由中的分段键:),/companies/:company_id/jobs/new
如下所示:
然后,使用 CanCan,我检查用户创建作业的权限。基本上,CanCan 检查 current_user 的company_id
属性是否与作业的company_id
. 此检查失败,因为@job.company_id
返回为字符串。
当然,我可以在实例化对象时使用 params[:company_id].to_i ,但这似乎是我以后必须重复的一种解决方法。
问题: 有没有办法让我的 Job ActiveModel 更加“类型感知”并使其返回 int 以进行@job.company_id
调用?
我四处搜索,检查activemodel
源代码,但似乎没有找到答案。任何帮助是极大的赞赏。
更新
我正在考虑更多类似schema
ActiveModel 的块,就像 ActiveResource 中的块一样。
ruby-on-rails - 基于 ActiveRecord 验证错误的决策
我对 Rails 很陌生,想知道最好的方法是什么:
我有一个控制器在数据库中创建记录。
如果发生特定的验证错误,我想设置一个标志,但我看不到使用我熟悉的 rails 模式完成此操作的好方法。
我要检测的模型验证是:
我的控制器正在这样做:
当上述错误失败时,我可以使用 ActiveModel 错误集合。
我应该如何可靠地设置一个标志以编程方式指示标题已被占用?
到目前为止我考虑过
但如果 title 因其他原因失败,这将返回 true。所以我需要更多类似的东西:
但这将是一个令人头疼的维护问题,并且还会被不同的语言环境破坏......
那么有谁知道这应该如何使用 RoR 来完成?
感谢您的任何建议
编辑:建议标志“is_title_duplicated”的示例用法:
ruby-on-rails - 在 ruby 中调用给定实例的类方法
我正在使用 rails ActiveModel,我定义了 2 个这样的方法:
但我认为我需要一个更通用的方法,如下所示:
但是我不知道如何调用给定实例的类方法,在上面,给定任务,我可以调用 Task.find 而不指定类名“Task”
有什么解决办法吗?谢谢!