【问题标题】:Rails formtastic automatically create unordered list for form inputsRails formtastic 自动为表单输入创建无序列表
【发布时间】:2011-09-16 12:06:08
【问题描述】:

我有一个带有嵌套模型的简单 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 将我的输入放入一个无序列表中,如下所示:

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

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

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

我应该如何解决这个问题?

谢谢。

【问题讨论】:

  • 您是否试图让 formtastic 不自动创建无序列表?这就是它应该做的。此外,在创建操作而不是视图中设置 user_id 值通常效果更好。
  • 感谢牧师。我刚刚安装了 Formtastic,它生成了无序列表。我知道它不应该,但不知道如何解决它。也感谢关于隐藏字段的建议。

标签: ruby-on-rails forms formtastic


【解决方案1】:

我遇到了同样的问题。这是我修复它的方法:

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'的父元素并从上到下定位它。

【讨论】:

    【解决方案2】:

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

    在 Rails

    rails generate formtastic:install

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

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多