【发布时间】:2012-08-17 18:44:46
【问题描述】:
为了不重复我自己,我想创建一个以特定方式呈现表单块(文本字段或文本区域)的函数。我想要这样的结果(使用 Haml 和 twitter-bootstrap):
.form-block.input-prepend
%span.add-on>
%i.icon.icon-home
= f.text_field :name, :value => @store.name, :placeholder => 'Company Name'
为此,我创建了一个文件views/layouts/_form-block.html.haml,并在其中插入了以下代码:
.form-block.input-prepend
%span.add-on>
%i{ :class => "icon icon-#{icon}" }
= yield
我在我的视图中调用该块:
- render :template => 'layouts/_form-block', :locals => { :icon => 'home' } do
= f.text_field :name, :value => @store.name, :placeholder => 'Company Name'
但它不起作用。我有以下错误'nil' is not an ActiveModel-compatible object that returns a valid partial path.
你有什么想法吗?这是最好的方法吗?
提前致谢。
【问题讨论】:
标签: ruby-on-rails forms rendering haml