Rails 3-在Controller中处理条件创建

时间:2010-10-09 03:36:24

标签: ruby-on-rails ruby-on-rails-3

我的def创建控制器中有以下内容:

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

在我的应用程序中,如果他们有一个project_id,则照片记录有效....

但我需要我的create语句不要出错并且适用于这两种情况。 A.如果有一个param project_id,insertit B.如果不是,请在创建记录时插入默认的NULL值

最聪明的Rails3方法是什么?

由于

2 个答案:

答案 0 :(得分:1)

除非您有适当的ActiveRecord验证,否则如果列为零,则不应该引发create方法。

答案 1 :(得分:0)

您可以执行以下操作:

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

在您的视图中,以照片形式。然后控制器将是:

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