0

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

谢谢你。

4

1 回答 1

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

然后在您看来,不是引用部分,而是引用助手:

<%= question_form %>

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

希望有帮助。

于 2013-01-16T04:48:46.863 回答