Ruby on rails 3 如何指定重写的Rails 3 FormHelper?
我已经覆盖了标准的Rails FormHelper,让它以我们(几乎基于引导)的格式(之后)输出表单元素 它工作得很好,但很难为它编写规范。我使用的规范如下:Ruby on rails 3 如何指定重写的Rails 3 FormHelper?,ruby-on-rails-3,twitter-bootstrap,rspec2,erb,actionview,Ruby On Rails 3,Twitter Bootstrap,Rspec2,Erb,Actionview,我已经覆盖了标准的Rails FormHelper,让它以我们(几乎基于引导)的格式(之后)输出表单元素 它工作得很好,但很难为它编写规范。我使用的规范如下: rendered_form = helper.my_custom_form_for(@account, :url => '/accounts') do |f| f.inputs do # This isn't rendered f.text_field 'name', :size => 30 #
rendered_form = helper.my_custom_form_for(@account, :url => '/accounts') do |f|
f.inputs do
# This isn't rendered
f.text_field 'name', :size => 30
# This is rendered
f.select 'locale', options_for_select([%w(Australia en-AU), %w(UK en-GB)])
end
end
渲染的内容包括选择标记,但不包括文本字段标记。我怀疑这是因为ActionView现在处理块的方式,附加块的返回值,而不是块中每个语句的返回值。显然,在应用程序的上下文中使用helper方法时,会传递一些ERB,并在该上下文中进行计算
你解决了这个问题吗?我很好奇你是不是刚刚把街区里的最后一个座位还给我了。您是否尝试更改f.text_字段/f.select顺序以查看返回的内容?如果是,那么您只需添加它们:
rendered_form = helper.my_custom_form_for(@account, :url => '/accounts') do |f|
f.inputs do
f.text_field('name', :size => 30) +
f.select('locale', options_for_select([%w(Australia en-AU), %w(UK en-GB)]))
end
end