Wes wrote:
> Try this:
> 
> class ObjectivesController < ApplicationController
>   before_filter :require_user
>   layout false
>   def create
>     objective = current_user.objectives.create(params[:objective])
>   end
> end

No!  Create shouldn't be a controller method.

> 
> And as others have said, don't overwrite

over*ride*

> AR class methods like
> 'create', otherwise you will enter a world of pain.

Yeah.  If you must override, it's probably best to do something like

def create(attributes, user_id)
  super(attributes.merge :user_id => user_id)
end

but even this is kind of bad.

> 
> Also, you are deleting a param called 'freq_options', if the model
> does not need it then it shouldn't be in the hash. If the controller
> needs it, then pass it as params[:freq_options] rather than params
> [:objective][:freq_options]. If it's not used there, then why pass it
> at all?

Good catch!

> 
> -- W

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
[email protected]
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to