在控制器中建立关联的更好方法

时间:2015-01-27 21:43:03

标签: ruby-on-rails collections controller

我需要一个父类的show方法中的链接来创建关联模型,所以我有代码:

link_to "incomplete", new_polymorphic_path(part_c.underscore, :survey_id => survey.id)

在帮手中。

这链接到一个部分,其中包含如下新代码:

# GET /source_control_parts/new
def new
  get_collections
  if params[:survey_id]
    @s = Survey.find(params[:survey_id])
    if @s.blank?
      @source_control_part = SourceControlPart.new
    else
      @source_control_part = @s.create_source_control_part
    end
  else
    @source_control_part = SourceControlPart.new
  end
end

我知道这不是很干。我该如何简化这个?是否有RAILS方式?

1 个答案:

答案 0 :(得分:0)

这个怎么样:

def new
  get_collections
  get_source_control_part
end

private
def get_source_control_part
  survey = params[:survey_id].blank? ? nil : Survey.find(params[:survey_id])
  @source_control_part = survey ? survey.create_source_control_part : SourceControlPart.new
end