Models as "views" on another model

I would like to selectively reuse some data. I have two groups of
people who want very similar information about subject experts - but
they want slightly different fields and/or want to see the other
group's information but should not be able to edit it.

If I create the following models, don't the child models have access
to all the parent's attributes (unless I override the attribute
accessors individually)?

class Expert < ActiveRecord::Base
# has fields like name, email, title, expertise_according_to_group1,
expertise_according_to_group2
end

class Group1_Expert < Expert
# If I did this, this model would have access to all fields in Expert,
right? Including the group2 fields
end

I could do what I want by just ignoring the group2 fields when showing
the expert to group1, but that feels kind of ummm unclean.

One can use database views to provide access controls on the
underlying table. I would like to do essentially the same thing in
Ruby/Rails, but I don't know how.

I would like to selectively reuse some data. I have two groups of
people who want very similar information about subject experts - but
they want slightly different fields and/or want to see the other
group's information but should not be able to edit it.

If I create the following models, don't the child models have access
to all the parent's attributes (unless I override the attribute
accessors individually)?

class Expert < ActiveRecord::Base
# has fields like name, email, title, expertise_according_to_group1,
expertise_according_to_group2
end

class Group1_Expert < Expert
# If I did this, this model would have access to all fields in Expert,
right? Including the group2 fields
end

I could do what I want by just ignoring the group2 fields when showing
the expert to group1, but that feels kind of ummm unclean.

That is the drawback with single table inheritance, unless your
subclasses have almost all of their data in common it gets a little
icky. One approach is to move the data that is not common in to a
separate set of tables (with the appropriate relationships)

Fred

It's not really practical to provide "access control" at the Ruby
source code level. I'd hope that you're not giving your users access
to run code on the server, so this is really just a UI issue.

--Matt Jones