如果有一个具有该名称的部分,如何启用f.inputs来呈现模板?

时间:2015-09-03 20:19:33

标签: ruby-on-rails ruby activeadmin semantic-markup cocoon-gem

以activeadmin格式表示:

  form(:html => { :multipart => true })  do |f|
    f.inputs
  end

它很好地显示了所有字段,当涉及belongs_to字段时,它将它们显示为集合,但我想用template belongs_to字段替换此集合。

例如,它会看到

f.inputs :product 

它会使_product.html.erb部分像这样。

我知道我能做到:

  form(:html => { :multipart => true })  do |f|
    f.input :field_name1
    f.input :field_name2
    ...
    f.input :field_name3
    render 'x_fields'
  end

但这是我最不喜欢的,问题在于,当我要更新我的数据库时,我还需要更新这些字段,f.inputs不需要。这就是为什么我喜欢使用f.inputs。

1 个答案:

答案 0 :(得分:0)

好吧,目前正在使用它作为解决方案:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script>
<!--- insert jquery code from JSFIDDLE here --->
</script>
<style>
<!--- insert CSS code from JSFIDDLE here --->
</style>
<!--- insert HTML code from JSFIDDLE here --->

并在表格中:

def form_inputs_for(m)
    columns=m.columns.map{|c| c.name}
    columns=columns.select{|s| !(s.end_with?"_id" or s.end_with?"_at" or s=="id") }
    columns.each do  |a|
        input a
    end
end

也在我的博客上:http://www.sadafnoor.com/blog/activeadmin-semantic-input-partial-and-f-inputs-togather/