rails应用程序控制器中的活动记录对象

时间:2013-01-16 04:46:24

标签: ruby-on-rails-3 activerecord

我正在添加一个网站范围的表单,用于在rails网站上提问。已创建资源问题的模型/视图/控制器。回答问题/新问题会显示您期望的表格。现在我想显示一个站点范围的问题表单(唯一的区别是它只显示必填字段)。问题:我应该在application_controller中创建一个新的问题对象并将其传递给rails form_for 帮助器,还是应该创建一个新的 _form2 部分(在问题视图中)并且只是在我的网站范围的模板中包含它?

谢谢。

1 个答案:

答案 0 :(得分:1)

question_form文件夹中创建views/shared部分,并从网站范围模板中引用该部分。

编辑:回复从

获取@question变量的位置

我有两个选择,你可以在ApplicationController中加载变量:

class ApplicationController < ActionController::Base

  before_filter :load_question

  def load_question
    @question = Question.new
  end

  ...

end

(在这种情况下,你应该注意与@question变量的冲突)

或者可能更好,您可以在ApplicationHelper中创建一个方法:

module ApplicationHelper

  def question_form

    question = Question.new

    raw render 'shared/question_form', :question => question
  end

  ...
end

然后在您的视图中,您不是引用partial,而是引用帮助程序:

<%= question_form %>

在这种情况下,您需要将partial中的变量引用为局部变量,因此question而不是@question

希望有所帮助。