开发者

rails 3, how can a reference to fieldname pull data from another source if field is empty?

开发者 https://www.devze.com 2023-02-28 12:35 出处:网络
In my app, users have one \"template\" record (in Template table) that sets defaults for their data.

In my app, users have one "template" record (in Template table) that sets defaults for their data.

Then they create multiple records in (Userdata table).

For each Userdata record, if they enter data into a field, the app uses THAT data (of course). But if Userdata.foo is empty I'd like to use Template.foo instead, transparently. And if both are empty, then i开发者_StackOverflow中文版t's "empty".

I'm pretty sure the right answer is NOT to code every single place I use every field:

if Userdata.foo.blank? 
   Template.foo
endif

And I assume it's a matter of somehow defining my model to redefine the fieldname somehow?

And I'm hoping there's some way to not even have to code the model method field-by-field, to basically say "if the field in UserDayta is blank, use the one in Template instead..."


You can define a method in your User model like so:

def fetch_attribute(att)
 if self.userdata[att].nil? and self.template[att].nil? 
   return nil
 elsif self.userdata[att].nil?
   return self.template[att]
 else
   return self.userdata[att]
 end
end
0

精彩评论

暂无评论...
验证码 换一张
取 消