私は初心者であり、この問題を解決する方法について助けていただければ幸いです。DataMapperのドキュメントに従おうとしましたが、オブジェクトとそれに対応するリンクを破棄する方法について、Google経由で解決策を見つけられませんでした。キーコードセグメントは次のとおりです。
モデル
class Entity
DataMapper::Resourceを含める
プロパティ:entity_id、シリアルプロパティ:full_legal_name、文字列プロパティ:tax_id、文字列プロパティ:phone_number、文字列プロパティ:fax_number、文字列プロパティ:cell_number、文字列プロパティ:email、文字列、:unique => true、:format =>:email_addressプロパティ: alt_email、Stringプロパティ:is_active、Booleanプロパティ:created_at、DateTimeプロパティ:created_by、Stringプロパティ:updated_at、DateTimeプロパティ:updated_by、Stringプロパティ:auto_pay、Booleanプロパティ:use_ach、Booleanプロパティ:prefix、Stringプロパティ:first_name、Stringプロパティ: middle_name、Stringプロパティ:last_name、Stringプロパティ:suffix、文字列プロパティ:referral_code、文字列プロパティ:login_name、文字列、:unique => trueプロパティ:hashed_password、文字列、:length => 200プロパティ:salt、文字列プロパティ:permission_level、整数プロパティ:title、文字列プロパティ:greeting、文字列プロパティ: priority_name、Stringプロパティ:preferred_language、Stringプロパティ:security_question、Stringプロパティ:security_answer、Stringプロパティ:signature_font、Stringプロパティ:auth1_checkbox、Booleanプロパティ:auth2_checkbox、Booleanプロパティ:auth3_checkbox、Booleanプロパティ:auth4_checkbox、Booleanプロパティ:auth5_checkbox、ブール型プロパティ:auth6_checkbox、ブール型プロパティ:digital_signature、文字列プロパティ:date_signed、DateTimeプロパティ:signatory_ip、文字列プロパティ:signatory_title、文字列
n、:addresses、:through =>リソースにはn、:achesにはn、:creditcardsがあります
終わり
クラスPerson<Entity
プロパティ:birthdate、文字列プロパティ:drivers_license_number、文字列プロパティ:state_issuing_drivers_license、文字列
終わり
クラス会社<エンティティ
プロパティ:dba_name、文字列プロパティ:legal_structure、文字列プロパティ:url、文字列、:format =>:url
終わり
クラスアドレス
DataMapper::Resourceを含める
プロパティ:address_id、シリアルプロパティ:esid、String、:unique => trueプロパティ:description、Stringプロパティ:address_line1、Stringプロパティ:address_line2、Stringプロパティ:city、Stringプロパティ:state、Stringプロパティ:zipcode、Stringプロパティ:country、文字列プロパティ:meter_number、文字列プロパティ:meter_type、文字列プロパティ:meter_status、文字列プロパティ:meter_status_date、DateTimeプロパティ:updated_by、文字列プロパティ:switch_indicator、文字列プロパティ:switch_type、文字列プロパティ:selected_switch_date、日付プロパティ:under_contract、ブールプロパティ:contract_end_date、日にち
n、:entities、:through=>リソースがあります
終わり
オブジェクトの作成と永続性
if session[:base_route].to_s == "residential"
#residential processing
@entity_id = session[:this_person].inspect
@person = Person.get(@entity_id.to_i)
@address = Address.new()
@address.esid = params[:post][:esid]
@address.description = params[:post][:service_location_description]
@address.address_line1 = params[:post][:service_address_line1]
@address.address_line2 = params[:post][:service_address_line2]
@address.city = params[:post][:service_city_name]
@address.state = params[:post][:service_state_name]
@address.zipcode = params[:post][:service_zip_code]
@address.switch_indicator = params[:post][:switch_indicator]
@address.switch_type = params[:post][:switch_type]
params[:post][:under_contract_checkbox] == "on" ? @under_contract = true : @under_contract = false
@address.under_contract = @under_contract
@person.addresses << @address
if @person.save
オブジェクトとリンクの破棄を試みました(リンクは破棄されますが、アドレスの破棄は機能しません)
@entity_id = session[:this_person].inspect
address = Address.get(params[:post][:submit].to_i)
address.destroy
entity = Entity.get(@entity_id)
link = entity.address_entities.get(@entity_id, params[:post][:submit])
link.destroy
ヒントや提案は大歓迎です。