如何使用Devise在Rails中创建方法?

时间:2013-09-30 05:36:12

标签: ruby-on-rails-3 devise

我在保存表单数据和包含正确的account_id时遇到问题。下面的表单显示current_user.account_id何时在dataload_mailchimps表中有记录。如果访问者将其api密钥添加到表单,则应将其与current_user的account_id一起保存到dataload_mailchimp表中。

但是,现在正确保存了api_key,没有将account_id保存到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'

1 个答案:

答案 0 :(得分:1)

如果您不想在attr_accessible中拥有:account_id,那么您应该直接添加该帐户:

@dataload.account = current_user.account