如何从不同的控制器渲染视图?

时间:2014-03-27 04:22:20

标签: ruby-on-rails forms controller

在我的项目中,我有两个名为PropertiesControllerFacilitiesController的控制器。在property中创建PropertiesController后,我想从view(form)加载FacilitiesController

我尝试使用显示错误的render facilities/new(表单中的第一个参数不能包含nil或为空),因为我没有初始化传递给form_for方法的参数(@facility)。

我可以通过初始化PropertiesController中的@facility变量来避免上述错误。但是form_for中的代码在object中的FacilitiesController调用方法。我不希望所有代码在PropertiesController中再次重复。

如何在不重复代码的情况下从FacilitiesController呈现视图?

1 个答案:

答案 0 :(得分:5)

我希望下面的代码适合您

class PropertiesController < ApplicationController


 def create
  @property = Property.new(property_params)

  respond_to do |format|
   if @property.save
     format.html { redirect_to facility_new_path, notice: 'Property was successfully created.' }
   else
    format.html { render action: 'new' }
    format.json { render json: @property.errors, status: :unprocessable_entity }
   end
  end
 end

end