我有两个属性,“a_value”和“b_id”。(不是他们的真名。)“a_value”存储在文件系统中,使用模型“B”中的一些信息,由“b_id”引用。
所以,我的 params 对象看起来像:
params[:foo] = {"a_value"=>"nifty value","b_id"=>"38"}
例如。
现在,在 foo_controller.rb 中:
foo = Foo.new(params[:foo])
但这失败了。
ActiveRecord::RecordNotFound: 找不到没有 ID 的 Foo
在 Foo.a_value=(value) 我有
...
self.my_path = self.b_id.the_path
...
看起来 Rails 正在按字母顺序进行分配,并且当 b_id 不存在时会惊慌失措,即使它存在于 params 哈希中并通过了验证。
我可以强制执行此任务的顺序吗?或者我可以创建一个 before_filter 在剩余的质量分配发生之前执行 b_id 分配吗?