我正在尝试格式化表单,文本字段会响应某些方法,而不是其他方法。
我可以做以下事情:
f.input :name, :input_html => { :maxlength => 10 }
f.input :name, :input_html => { :disabled => true }
但是,如果我尝试执行以下任何操作,它们将无效:
f.input :name, :input_html => { :size => 10 }
f.input :name, :input_html => { :class => 'autogrow' }
f.input :name, :input_html => { :rows => 10, :cols => 10 }
例如,当我尝试使用:size时,生成的html显示size = 10,但不会反映在实际形式中。
这些或多或少是从Github上的Formtastic文档中提取的,Activeadmin文档引用了该文档。
答案 0 :(得分:12)
我不确定你的问题是否已经解决。
然而根据Formastic Official WIKI,您的代码应该有效:
使用:input_html选项自定义任何输入的HTML属性。 通常,这用于禁用输入,更改文本的大小 字段,更改textarea中的行,甚至添加特殊类 输入以附加特殊行为,如autogrow textareas:
<%= semantic_form_for @post do |f| %>
<%= f.inputs do %>
<%= f.input :title, :input_html => { :size => 10 } %>
<%= f.input :body, :input_html => { :class => 'autogrow', :rows => 10, :cols => 20, :maxlength => 10 } %>
<%= f.input :created_at, :input_html => { :disabled => true } %>
<%= f.input :updated_at, :input_html => { :readonly => true } %>
<% end %>
<%= f.actions %>
<% end %>
https://github.com/justinfrench/formtastic
如果您的代码不起作用,请查看错误日志,或将更多调试信息添加到您的erb文件中,以查看您是否在生产模式下运行。
答案 1 :(得分:5)
form do |f|
f.inputs "Header" do
cf.input :name, :input_html => { :class => 'some_style', :rows => 2, :style => 'width:50%'}
end
f.actions
end
所以基本上你必须创建自己的类或者只使用:style。
对于嵌套表单,您可以使用此代码
form do |f|
f.inputs "Header" do
f.has_many :name,:allow_destroy => true,:new_record => true do |cf|
cf.input :first_name, :input_html => { :class => 'some_style', :rows => 2, :style => 'width:50%'}
end
end
f.actions
end