5

In der Vergangenheit habe ich Rails 3.x Bootstrap 2.x und simple_form mit großem Erfolg verwendet. Ich habe jedoch versucht, eine neue (nicht aktualisierte) Rails 4/Bootstrap 3-Anwendung zu erstellen, und obwohl die simple_form-Syntax verwendet werden kann und sogar verschachtelte Formulare verwenden kann, sieht es so aus, als ob das Styling nicht funktioniert. Ich habe Rails-Bootstrap-Formulare auf einem nicht modellbasierten Formular verwendet und das Styling sieht gut aus, aber ich würde für die Mehrheit meiner Formulare lieber simple_form verwenden.Rails 4, Bootstrap 3, simple_form - Form-Styling funktioniert nicht

Aussehen Meine Dateien wie folgt

gem

source 'https://rubygems.org' 

gem 'rails', '4.1.6' 
gem 'mysql2' 
gem 'jquery-rails' 
gem 'devise' 

gem 'sass-rails' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'bootstrap-sass', '~> 3.2.0' 
gem 'autoprefixer-rails' 
gem 'therubyracer', '0.11.4', :platforms => :ruby 
gem 'uglifier', '>= 1.3.0' 
gem 'jquery-ui-rails' 
gem 'less-rails' 
gem 'font-awesome-rails' 
gem 'bootstrap_form' 

gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0',   group: :doc 

gem 'jquery-turbolinks' 
gem 'turbolinks', '1.3.0' 

#Forms and user entry 
gem 'simple_form' 
gem 'cocoon' 
gem 'country_select' 
gem "ckeditor" 
gem "gon" 

application.css.scss

/* 
*= require_self 
*= require rails_bootstrap_forms 
*= require font-awesome 
*= require_tree . 
*/ 

@import "bootstrap-sprockets"; 
@import "bootstrap"; 

Ich habe die beiden initializers, die nicht simple_form.rb und simple_form_bootstrap verändert haben. rb

und ein Formular, das wie folgt aussieht

<%= simple_form_for @item, :html => { :class => 'form-horizontal' } do |f| %> 

    <% if f.error_notification %> 
    <div class="alert alert-error fade in"> 
     <a class="close" data-dismiss="alert" href="#">&times;</a> 
     <%= f.error_notification %> 
    </div> 
    <% end %> 

    <%= f.input :user_id, :as => :hidden, :input_html => { :value => @userid } %> 
    <%= f.association :category %> 
    <%= f.input :name %> 
    <%= f.input :description %> 

    <%= f.input :cool %> 
    <%= f.input :cold %> 


    <%= f.button :submit, :class => 'btn-primary' %> 
    <%= link_to t('.cancel', :default => t("helpers.links.cancel")), 
       items_path, :class => 'btn btn-default' %> 
<% end %> 

, die in der folgenden Art und Weise gibt

 <div class="control-group hidden item_user_id"><div class="controls"><input class="hidden" id="item_user_id" name="item[user_id]" type="hidden" /></div></div> 
     <div class="control-group select optional item_category"><label class="select optional control-label" for="item_category_id">Category</label><div class="controls"><select class="select optional" id="item_category_id" name="item[category_id]"><option value=""></option> 
<option selected="selected" value="1">Option 1</option> 
<option value="3">Option 2</option> 
<option value="4">Option 3</option> 
     <div class="control-group string optional item_name"><label class="string optional control-label" for="item_name">Name</label><div class="controls"><input class="string optional" id="item_name" name="item[name]" type="text" value="Underwear" /></div></div> 
     <div class="control-group string optional item_description"><label class="string optional control-label" for="item_description">Description</label><div class="controls"><input class="string optional" id="item_description" name="item[description]" type="text" value="test" /></div></div> 
     <div class="control-group boolean optional item_warm"><label class="boolean optional control-label" for="item_warm">Warm</label><div class="controls"><input name="item[warm]" type="hidden" value="0" /><label class="checkbox"><input checked="checked" class="boolean optional" id="item_warm" name="item[warm]" type="checkbox" value="1" /></label></div></div> 
     <div class="control-group boolean optional item_cool"><label class="boolean optional control-label" for="item_cool">Cool</label><div class="controls"><input name="item[cool]" type="hidden" value="0" /><label class="checkbox"><input checked="checked" class="boolean optional" id="item_cool" name="item[cool]" type="checkbox" value="1" /></label></div></div> 

Insbesondere die Kontrollkästchen sehen wirklich schlecht, wie unten

enter image description here gezeigt

, alle ähnliche Probleme jemand hatte, oder bin ich nur etwas Dummes tun?

irgendwelche Gedanken akzeptiert dankbar

+0

Hast du 'rails generate simple_form: install --bootstrap' ausgeführt? – pragma

+0

Ja, tat ich. Ich versuche jetzt die folgende Änderung meiner Edelstein-Datei - Edelstein 'simple_form', '~> 3.1.0.rc1', github: 'plataformatec/simple_form', Zweig: 'Meister' –

Antwort

2

wie die Standardversion von simple_form Looks mit Bootstrap 3 nicht vollständig funktioniert. Ich hatte daher meine Perle Datei ändern folgendes zu lesen:

gem 'simple_form', '~> 3.1.0.rc1', github: 'plataformatec/simple_form', branch: 'master' 

Dies hat das Problem gelöst, sobald ich die initializer reran und neu gestartet wird die App.

3

Sie die Version in den Gemfile Recht in Bezug auf, auch fand ich, dass Formen mit dieser Syntax besser machen:

<%= simple_form_for @item, html: {class: 'form-horizontal'}, 
        wrapper: :horizontal_form, 
        wrapper_mappings: { 
          check_boxes: :horizontal_radio_and_checkboxes, 
          radio_buttons: :horizontal_radio_and_checkboxes, 
          file: :horizontal_file_input, 
          boolean: :horizontal_boolean 
        } do |f| %> 

    <%= f.input :sample_model_field%> 
    <div class="form-group"> 
     <div class="col-sm-offset-3 col-sm-9"> 
     <%= f.button :submit %> 
     </div> 
    </div> 
<% end %> 

Sie können auch in der Beispielanwendung Code aussehen:

https://github.com/rafaelfranca/simple_form-bootstrap

+0

Danke für das zusätzliche Detail Fred, wirklich nützlich Spitze. Und ja, jetzt, wo die Dinge funktionieren, gehe ich zurück und schaue mir die Beispiel-App an –

Verwandte Themen