Rails formtastic自动为表单输入创建无序列表

时间:2011-09-16 12:06:09

标签: ruby-on-rails forms formtastic

我有一个简单的Formtastic表单,嵌套模型如下。

<%= semantic_form_for @event do |form| %>
  <%= form.input :user_id , :as => :hidden, :value => @user.id %>
  <%= form.input :title %>
  <%= form.input :invitations, :as => :check_boxes, :collection => Group.find(:all, :order => "name ASC"), :for => :invitations, :name => "Invitation", :include_blank => false %>
  <%= form.buttons %>
<% end %>

不知何故,Formtastic将我的输入放入无序列表中,如下所示:

enter image description here

我想知道如何更改设置以解决此问题。

此外,对于复选框,Formtastic会自动添加一个nill选项:

  Parameters: {"utf8"=>"✓", "authenticity_token"=>"XXX", "event"=>{"title"=>"test 15",  "type"=>"", "invitation_ids"=>["", "2", "1"]}, "commit"=>"Create Event"}

我该如何解决这个问题?

谢谢。

2 个答案:

答案 0 :(得分:7)

我有同样的问题。以下是我修复它的方法:

<强> ERB

<div class="some_class">
   <%= semantic_form_for @event do |form| %>
      <%= form.input :user_id , :as => :hidden, :value => @user.id %>
      <%= form.input :title %>
      <%= form.input :invitations, :as => :check_boxes, :collection => Group.find(:all, :order => "name ASC"), :for => :invitations, :name => "Invitation", :include_blank => false %>
      <%= form.buttons %>
   <%= end %>
</div>

<强> CSS

.some_class {
   li {
      list-style-type:none;
   }
}

我不确定这是解决问题的绝对正确方法,但对我而言,它已经完成了我想要它做的事情。希望这有帮助!

我曾尝试专门为表单添加一个类,但这并不是针对'li',因为它是该元素的子元素。由于formtastic创建了'li',我决定转到'li'的父元素并从上到下定位它。

答案 1 :(得分:0)

这是formtastic的默认行为。 Formtastic附带自己的样式表来抑制项目符号的显示并正确格式化表单。您需要在布局中包含此内容,然后覆盖任何不适合您网站的规则。

在Rails&lt; 3.1有一个rake任务来生成必要的文件:

rails generate formtastic:install

在3.1 +中,CSS可以通过资产管道获得。