Duplicating table data into another table

Requirement: I am designing a Customer invoice system for a service
company. company has some default rates across the company which is
based on designation, experience level, qualification etc. These rates
can be changed for a particular project. So project rates can overwrites
the default rates

The way I am doing is:
1. create defaultrates tables which will be pre-populated with the
default rate data
2. Project table contain information about project
3. projectrates table which contain exactly same fields as defaultrates
table, except it will also contain foreign keys with project table (id)
and defaultrates table(id).
When the project is created projectrates table will be populated with
all the data present in defaultrates table along with project_id
If user want to change the rates for a particular project, then
projectrates table will be edited matching the particular project id

models:
project
  has_many :projectrates

projectrate

  belongs_to :project
  belongs_to :defaultrate

defaultrate
      has_many :projectrates

Questions
1. User will create the project, at back-end projectrates table should
be populated with the data from defaultrates table along with
project-id. how to do this??
2. show.rhtml , showing details of particular project should also show
the details of project rates
3. edit.rhtml editing project, should also give user the functionality
to edit project rates

Please it is important for me, so let me know how to do this?