views:

24

answers:

2

Hello,

I have the following in my def create controller:

@photo = current_user.photos.create(params[:photo].merge(:project_id => params[:project_id])

In my app photo records are valid if they have a project_id or not....

But I need my create statement not to error and work for both cases. A. If there is a param project_id, insertit B. If not, insert the default NULL value when creating the record

What's the smartest Rails3 way to accomplish this?

Thanks

+1  A: 

Unless you have an ActiveRecord validation in place, the create method should not raise if a column is nil.

Simone Carletti
A: 

You could do something like:

<%= f.hidden_field :project_id, :value => PROJECT_ID_WHICH_CAN_BE_NULL_OR_NOT %>

inside your view, in the photo form. The controller would then be:

@photo = current_user.photos.create(params[:photo])
cristian