相关疑难解决方法(0)

Rails嵌套的content_tag

我正在尝试将内容标记嵌套到自定义帮助器中,以创建如下内容:

<div class="field">
   <label>A Label</label>
   <input class="medium new_value" size="20" type="text" name="value_name" />
</div>
Run Code Online (Sandbox Code Playgroud)

请注意,输入与表单无关,它将通过javascript保存.

这是帮手(它会做更多然后只显示html):

module InputHelper
    def editable_input(label,name)
         content_tag :div, :class => "field" do
          content_tag :label,label
          text_field_tag name,'', :class => 'medium new_value'
         end
    end
end

<%= editable_input 'Year Founded', 'companyStartDate' %>
Run Code Online (Sandbox Code Playgroud)

但是,当我调用帮助程序时,不显示标签,只显示输入.如果它注释掉text_field_tag,则显示标签.

谢谢!

ruby-on-rails helpers ruby-on-rails-3

80
推荐指数
2
解决办法
5万
查看次数

试图扩展ActionView :: Helpers :: FormBuilder

我试图通过将一些逻辑移入FormBuilder来干掉一些代码.在阅读有关如何选择和替代表单构建器的文档后,对我来说逻辑解决方案似乎是这样的.

在视图中

<% form_for @event, :builder => TestFormBuilder do |f| %>
    <%= f.test  %>
    <%= f.submit 'Update' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

然后在app/helpers/application_helper.rb中

module ApplicationHelper
    class TestFormBuilder < ActionView::Helpers::FormBuilder
        def test
            puts 'apa'
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但是,这在"form_for"中给出了一个错误

  uninitialized constant ActionView::Base::CompiledTemplates::TestFormBuilder
Run Code Online (Sandbox Code Playgroud)

我在哪里做错了?

ruby-on-rails actionview formbuilder

3
推荐指数
1
解决办法
4201
查看次数