ruby-on-rails-3.1 – Formastic Bootstrap Rails错误 – 没有这样的文件加载ButtonsHelpers

我完全坚持这个错误.使用Rails 3.1试图实现Formastic Bootstrap gem并获得错误:

`’:没有这样的文件要加载 – formtastic / helpers / buttons_helper(LoadError)

Application.css

*= require formtastic
*= require formtastic-bootstrap

的Gemfile

group :assets do
  gem 'sass-rails',"  ~> 3.1.0"
  gem 'coffee-rails',"~> 3.1.0"
  gem 'uglifier'
  gem 'less-rails-bootstrap'
    gem 'bootstrap-sass'
end

formastic.rb

Formtastic::Helpers::FormHelper.builder = FormtasticBootstrap::FormBuilder

gem 'formtastic'

gem 'formtastic-bootstrap'

buttons_helper

module FormtasticBootstrap
  module Helpers
    module ButtonsHelper

      include Formtastic::Helpers::ButtonsHelper

      def buttons(*args,&block)

        html_options = args.extract_options!
        html_options[:class] ||= "actions"

        if html_options.has_key?(:name)
          ActiveSupport::Deprecation.warn('The :name option is not supported')
        end

        if block_given?
          template.content_tag(:div,html_options) do
            yield
          end          
        else
          args = [:commit] if args.empty?
          contents = args.map { |button_name| send(:"#{button_name}_button") }
          template.content_tag(:div,html_options.except(:builder,:parent,:name)) do
            Formtastic::Util.html_safe(contents.join)
          end
        end

      end

      def commit_button(*args)
        options = args.extract_options!
        text = options.delete(:label) || args.shift

        text = (localized_string(commit_button_i18n_key,text,:action,:model => commit_button_object_name) ||
                Formtastic::I18n.t(commit_button_i18n_key,:model => commit_button_object_name)) unless text.is_a?(::String)

        button_html = options.delete(:button_html) || {}
        button_html.merge!(:class => [button_html[:class],"btn commit",commit_button_i18n_key].compact.join(' '))

        # TODO We don't have a wrapper. Add deprecation message.
        # wrapper_html = options.delete(:wrapper_html) || {}
        # wrapper_html[:class] = (commit_button_wrapper_html_class << wrapper_html[:class]).flatten.compact.join(' ')

        accesskey = (options.delete(:accesskey) || default_commit_button_accesskey) unless button_html.has_key?(:accesskey)
        button_html = button_html.merge(:accesskey => accesskey) if accesskey

        Formtastic::Util.html_safe(submit(text,button_html))
      end

    end
  end
end

解决方法

我有同样的问题.显然最新发布的formtastic 2.2.0(昨天推出)与formtastic-bootstrap不兼容

为此,您必须指定formtastic的早期版本

只需在gem’formtastic-bootstrap’上方添加以下行

gem 'formtastic'," ~> 2.1.1"

它是formtastic的早期版本.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...