I have 2 models Timesheet and TimeEntry:
class Timesheet < ActiveRecord::Base
attr_accessible :status, :user_id, :time_entries_attributes
has_many :time_entries, dependent: :destroy
accepts_nested_attributes_for :time_entries, :reject_if => proc {
|attributes| attributes['worktime'].blank? }
end
class TimeEntry < ActiveRecord::Base
attr_accessible :task_id, :timesheet_id, :workdate, :worktime
belongs_to :timesheet
end
As explained in Rails API:
```
Using with attr_accessible
The use of attr_accessible can interfere with nested attributes if youre
not careful. For example, if the Member model above was using
attr_accessible like this:
attr_accessible :name
You would need to modify it to look like this:
attr_accessible :name, :posts_attributes
```
If I try to do the same for my case with time_entries association:
```
irb(main):016:0> t = Timesheet.new
=> #<Timesheet id: nil, user_id: nil, status: nil, created_at: nil,
updated_at: nil>
irb(main):017:0> t.time_entries_attributes
NoMethodError: undefined method `time_entries_attributes' for
#<Timesheet:0x007fa8aee56e98>
```
It does not work. Any idea?
Thanks and regards
on 2013-03-04 22:23
on 2013-03-05 13:07
I'm not sure, but I think that you must use "build" method to create a TimeEntry associated to TimeSheet.
on 2013-03-05 13:26
On Tuesday, March 5, 2013 1:07:13 PM UTC+1, Ruby-Forum.com User wrote: > > I'm not sure, but I think that you must use "build" method to create a > TimeEntry associated to TimeSheet. > > Sorry , but the question was not about how to create time_entries > association but how to receive the association attributes. I believed that > calling timesheet.time_entries_attributes will do that. > Regards
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.