将重复的块传递给表单

时间:2014-01-07 19:01:59

标签: ruby-on-rails ruby angularjs

我有一个包含多个“li”元素的表单,其中包含表单字段,其中唯一不同的是多个placee中的一个单词。例如:

li
  = f.label :answer_tax, 'Tax'
  = f.text_field :answer_tax,
  'ng-model' => 'Form.tax',
  'ng-pattern' => '{{pattern}}',
  'ng-focus' => 'initFields(Form.tax)',
  'ng-blur' => 'updateScore(Form.tax, "tax")'

li
  = f.label :answer_chase, 'Chase'
  = f.text_field :answer_chase,
  'ng-model' => 'Form.chase',
  'ng-pattern' => '{{pattern}}',
  'ng-focus' => 'initFields(Form.chase)',
  'ng-blur' => 'updateScore(Form.chase, "chase")'

我想创建一个部分,从数组中获取每个单词并生成表单字段。最好的地方在哪里(帮手?)我将如何去做?谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

你可以在视图中做到这一点,你甚至不需要使用部分如果你觉得这更简单(我假设你正在使用HAML?如果我是对的,你应该有% li标签?):

- %w{ tax chase }.each do |field_name|
  %li
    = f.label "answer_#{field_name}".to_sym, field_name.capitalize
    = f.text_field "answer_#{field_name}".to_sym,
    'ng-model' => "Form.#{field_name}",
    'ng-pattern' => '{{pattern}}',
    'ng-focus' => "initFields(Form.#{field_name})',
    'ng-blur' => "updateScore(Form.#{field_name}, \"#{field_name}\")"