Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – field_for和嵌套形式与mongoid大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以给我一个使用mongoid的嵌套形式的工作实例吗?

我的型号:

class employee 
  include Mongoid::Document 
  field :first_name 
  field :last_name 
  embeds_one :address 
end

class Address 
  include Mongoid::Document 
  field :street 
  field :city 
  field :state 
  field :post_code 
  embedded_in :employee,:inverse_of => :address 
end

解决方法

您的型号:
class employee 
  include Mongoid::Document 

  field :first_name 
  field :last_name 
  embeds_one :address
  # validate embedded document with parent document
  validates_associated :address
  # allows you to give f.e. employee.new a nested hash with attributes for
  # the embedded address object
  # employee.new({ :first_name => "First Name",:address => { :street => "Street" } })
  accepts_nested_attributes_for :address
end

class Address 
  include Mongoid::Document 

  field :street 
  field :city 
  field :state 
  field :post_code 
  embedded_in :employee,:inverse_of => :address 
end

你的控制器:

class employeesController < ApplicationController

  def new
    @employee = employee.new
    # pre-build address for nested form builder
    @employee.build_address
  end

  def create
    # this will also build the embedded address object 
    # with the nested address parameters
    @employee = employee.new params[:employee]

    if @employee.save
      # [..]
    end
  end      

end

你的模板:

# new.html.erb
<%= form_for @employee do |f| %>
  <!-- [..] -->
  <%= f.fields_for :address  do |builder| %>
     <table>
       <tr>
         <td><%= builder.label :street %></td>
         <td><%= builder.text_field :street %></td>
       </tr>
       <!-- [..] -->
     </table>
  <% end %>
<% end %>

这应该适合你!

朱利安

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – field_for和嵌套形式与mongoid全部内容,希望文章能够帮你解决ruby-on-rails – field_for和嵌套形式与mongoid所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。