【问题标题】:Rails: referencing independent entityRails:引用独立实体
【发布时间】:2016-11-23 16:42:34
【问题描述】:

我有一个引用 Location 模型的 Customer 模型。在数据库表中,customers 表有一个外键 location_id 到 locations 表。

这种关系是单向的。我的意思是,Location 是一个独立的实体,与 Customer 没有任何关系。

我拥有的是 客户.rb

:belongs_to :location

Location.rb 中没有任何内容。

什么是客户和位置的正确关联?我应该如何在新方法中构建对象?

我现在得到的错误是—— Location(#70161843915060) 预期,得到 ActionController::Parameters(#70161815174700)

更新 - 1

我的表单是为@customer 使用的

f.fields_for :location

参数如下—— 参数:{"utf8"=>"✓", "authenticity_token"=>"Kz0iGeAA/pxWvZy3vORKshSdQSBndwlWiHiih8lKYqHsggL/sTBPlaukpVanyckdProZyI3zik2N07udpySvMA==", "customer"=>{"name"=>"MNC", "location"=>{"name "=>"HY"}

【问题讨论】:

    标签: ruby-on-rails activerecord database-design


    【解决方案1】:

    在您的 Customer.rb 中

    belongs_to :location
    

    在你的位置.rb

    has_many :customers
    

    只是例子

    location = Location.first
    @customer = location.customers.new
    

    【讨论】:

    • 仍然有同样的错误。我的表格适用于@customer,并使用f.fields_for :location。参数如下 参数:{"utf8"=>"✓", "authenticity_token"=>"Kz0iGeAA/pxWvZy3vORKshSdQSBndwlWiHiih8lKYqHsggL/sTBPlaukpVanyckdProZyI3zik2N07udpySvMA==", "customer"=>{"name"=>"MNC", "location"=> {"name"=>"HK"}
    • 您需要在隐藏字段中传递 location_id.. 或者您可以向收集所有位置的用户显示下拉列表,用户可以从该下拉列表中选择位置。
    • 我正在尝试一次性创建客户和位置。当前位置是一个组合框,允许选择现有位置以及输入新位置。用户是不想操作多个屏幕的销售人员。
    • 应该是 "Select Location"},class: 'form-control custom-form-control' %> 其中@locations = Location.all 和选择框包含值作为 id 和名称作为位置名称
    【解决方案2】:
     1. customer.rb
    
        belongs_to :location,foreign_key: :location_id
    
     2. location.rb
    
        has_many :customers
    
    add this code in your controller 
    
    
        when creating a new location for a customer:
    
         @location = Location.new(params[:location])
         @location.customers.create(params[:customers])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多