2013-09-30 2 views
0

У меня возникла проблема с сохранением данных формы и указанием правильной учетной записи. В приведенной ниже форме показано, когда current_user.account_id имеет запись в таблице dataload_mailchimps. Если посетитель добавляет свой ключ api в форму, он должен быть сохранен в таблице dataload_mailchimps вместе с account_id текущего_user.Как создать метод создания в Rails с помощью Devise?

Однако, сейчас api_key сохранен правильно, никакая учетная запись не сохраняется в таблице dataload_mailchimps. Что я должен делать по-другому, чтобы сохранить current_user.account_id в таблице при отправке формы?

Мой контроллер:

class DataloadMailchimpsController < ApplicationController 
    before_filter :authenticate_user! 

    def create 
    @dataload = DataloadMailchimp.new(params[:dataload_mailchimp].merge(
     account_id: current_user.account_id) 
    ) 

    respond_to do |format| 
     if @dataload.save 
     format.html { redirect_to edit_dataload_mailchimp_path, notice: 'Dataload mailchimp was successfully created.' } 
     format.json { render json: @dataload, status: :created, location: @dataload } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @dataload.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

Форма (_form.html.haml):

= form_for @dataload, :url => dataload_mailchimp_path do |f| 
    .fieldset 
    .field 
     = f.label :api_key 
     %br/ 
     = f.text_field :api_key 

    - if @dataload.new_record? || @dataload.api_key.blank? 
    %p Please specify Mailchimp API key for additional configuration 

    .actions 
    = f.submit 'Update Mailchimp Dataload' 
+0

Вы используете атрибут_accessible stuff? разрешено ли 'account_id'? вы пытались установить его прямо? '@dataload.account = current_user.account'? – phoet

+0

@phoet ваши предложения были прямо на. Спасибо за вашу помощь. Я добавил: account_id в attr_accessible и разделил назначение account_id, и он сработал. Вы хотите добавить свои предложения в качестве ответа, и я соглашусь? – analyticsPierce

ответ

1

Если вы не хотите иметь: ACCOUNT_ID в вашем attr_accessible, то вы должны добавить учетную запись напрямую :

@dataload.account = current_user.account 
Смежные вопросы