在Trailblazer Cells中渲染部分形式

时间:2017-11-02 07:05:51

标签: ruby-on-rails cells trailblazer

在我的开拓者细胞中,我呈现出一种相当动态的形态。我想做这样的事情:

概念/ card_form /视图/ _deck_form.erb *

<%= simple_form_for [parent,card] do |f| %>
   <div class='row'>
     <div class='col-md-6'>
       <%= render '_target_sentence', locals: { f: f } %>
     </div>

概念/ card_form /视图/ _target_sentence.erb

 <%= f.input :target_sentence_text,
        input_html: { class: 'target-sentence', value: card.target_sentence.sentence },
        label: "#{target_language} Sentence" %>

_target_sentence 部分还有更多内容,但我在这里对其进行了简化。问题是我无法通过f表单构建器

上面的代码给出了:

wrong number of arguments (given 2, expected 0..1)

另一种变化:

<%= render '_target_sentence' %>

undefined local variable or method `f' for #<CardForm::Cell:0x007fc8eb7eaa48>

1 个答案:

答案 0 :(得分:1)

我非常强烈建议在使用Cell时避免使用partials。

使用Cell的一个主要原因是不使用partials。我建议的是创建一个名为TartgetSentence的Cell,它将使用params,并创建&#34; partial&#34;查看,然后调用此单元格而不是您正在执行的render "_target_sentece"

单元格是ViewObjects,因此您应将它们视为对象。根据需要定义一次,然后构建你的&#34; master&#34;单元格和这些视图对象的相应视图,然后在需要时调用它们。这部分原因是它们比部分速度快。

P.S .: 欢迎您前来我们官方的Gitter频道为您提供Trailblazer - 您可以更快地获得帮助。 https://gitter.im/trailblazer/chat