当关系为null时,不显示表单

时间:2012-07-02 12:44:57

标签: ruby-on-rails ruby ruby-on-rails-3 mongoid

我有这样的关系

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  embeds_one :setting
end

和设置类

class Setting
  include Mongoid::Document
  include Mongoid::Timestamps

  embedded_in :user

  field :notify, type: Boolean
end

我有一个这样的表格:

<% form_for current_user.setting || current_user.build_setting, :html => {:class => 'well'} do |f| %>
  Notificar: <%= f.check_box :notify, :class => 'check' %>

  <div class="form-actions">
    <%= f.submit "Salvar" %>
  </div>
<% end %>

但是当我访问表单页面时,表单未显示。我怀疑这是因为setting是零,或类似的东西......
我错过了什么?
谢谢你们

1 个答案:

答案 0 :(得分:3)

您在form_for前面缺少等号。

<%= form_for # ... %>

form_for帮助器渲染其块中的所有内容,添加一个表单标记并返回html。为了显示它,您必须告诉eRB您要显示返回的字符串。因此,当缺少等号时,它将不会显示输出。