创建空对象并将其属性设置为某个对象

时间:2014-12-30 15:08:32

标签: ruby ruby-on-rails-4

我的控制器中有一个名为update_models的操作,我根据@selected_model的值设置了一个名为params[:model_id]的实例变量:

def update_models
  if params[:model_id].blank?
    // create object with id attribute equals '0'.
  else
    @selected_model = Model.find(params[:model_id]
  end
end

在if语句的第一部分中,如何为@selected_model分配一个空对象并将其id属性设置为'0',以便我可以在我的视图中访问该属性使用@selected_model.id

3 个答案:

答案 0 :(得分:1)

假设params 不是

def update_models
  @selected_model = Model.find_by_id( params[:model_id] ) || Model.new( id: 0 )
end

答案 1 :(得分:0)

你不能这样做吗?

def update_models
  if params[:model_id].blank?
    @selected_model = Model.new
    @selected_model.id = 0
  else
    @selected_model = Model.find(params[:model_id]
  end
end

答案 2 :(得分:0)

也许你可以尝试类似的东西(没有if条件):

def update_models
  @selected_model = Model.find(params[:model_id])
rescue
  @selected_model = Model.new
  @selected_model.id = 0
end