rails 中未显示嵌套形式的输入

input in nested form is not shown in rails

我有一个 Rails 应用程序,它有两个模型:问题和可能的答案。一个问题有许多可能的答案,一个可能的答案属于一个问题。在添加问题时,我想添加可能的答案。但是,我无法显示可能的答案输入。以下是可能导致问题的文件:

questions_controller.rb:

  def new
    @question = @poll.questions.build
    4.times { @question.possible_answers.build }
  end

question.rb:

has_many :possible_answers

accepts_nested_attributes_for :possible_answers

_form.html.haml:

-f.fields_for :possible_answers do |p|
  =p.text_field :title

我该如何解决这个问题?

哈...我明白了。虽然花了我一段时间。

erb中,<% ... %><%= ... %>的区别在于前者只分析,而后者则显示结果。

同样的原则也适用于使用其他引擎时(slimhaml 等)。

要分析,请使用 -,但要同时显示,请使用 =

因此,要将以上内容应用于您的案例,嵌套属性的行必须从仅分析更改为同时显示。

即:改变这个:

-f.fields_for :possible_answers do |p|
  =p.text_field :title

对此:

=f.fields_for :possible_answers do |p|
  =p.text_field :title

这应该适合你。

= f.fields_for :possible_answers do |p|
  =p.text_field :title

当我第一次开始 Rails 时,我花了一天时间才弄明白。