2016-07-12 12 views
1

views/_form.html.erbWie zum Speichern von Daten in hstore Datentyp mit mehreren Schlüsseln und Werten Schienen 5

Extra fee field name : <%= text_field_tag :extra_fee_field,nil, placeholder: 'Enter field name',name: "payment_plan[payment_fees[extra_fee_field]][]" %>fees 
Extra fee value : <%= text_field_tag :extra_fee_value,nil, placeholder: 'Enter fee value in %',name: "payment_plan[payment_fees[extra_fee_value]][]" %> % 
<%= submit_tag "Add",id: "add" %> 

Controller/payment_plan_controller.rb

def create 
@payment_plan = PaymentPlan.new(payment_plan_params) 
@payment_plan.save 

Ende

private 
def payment_plan_params 
    params.require(:payment_plan).permit(:pay_within_days,:display_active, 
    :payment_fees=>[:extra_fee_field=>[],:extra_fee_value=>[]]) 
end 

modell/zahlungsplan.rb

class PaymentPlan < ApplicationRecord 
store_accessor :payment_fees 
end 

Datenspeicher in folgendem Format: -

payment_fees: { "extra_fee_field" => "[\" serfere \ "\ "sfsdfdff \"]", "extra_fee_value" => "[\" 5 \ ", \" 7 \ "]"}, display_active: false, created_at: "2016-07-12 06:41:48", updated_at: "2016-07-12 06:41:48">

bitte Hilf mir. Vielen Dank im Voraus .. :)

Antwort

0

nach meinem besten Versuch erhalte ich die Lösungen alle obiger Code Methode der Steuerung ändern in der richtigen gerade ist

@extra_fee_field = params[:payment_plan][:payment_fees][:extra_fee_field] 
@extra_fee_value = params[:payment_plan][:payment_fees][:extra_fee_value] 
@payment_plan[:payment_fees] = @extra_fee_field.zip(@extra_fee_value).to_h 

Danach i Daten in hstore Datentyp speichern kann