before_filter для установки первичного ключа перед созданием - PullRequest
1 голос
/ 05 марта 2012

Я использую фильтр для установки первичного ключа экземпляра перед его сохранением.

Вот мой метод контроллера:

class ReferencesController < ApplicationController

before_filter :set_primary_key, :only => [:create_sub_reference]

    def create_sub_reference    
    @reference = Reference.new(params[:reference])
    respond_to do |format|
    if @reference.save
      format.js
    else
      flash[:notice] = "Reference failed to save."
    end
    end
    end


    private

    def set_primary_key
    result = ActiveRecord::Base.connection.execute('SELECT REF_ID FROM SEQUENCES')
    inc_result = (result.fetch_row.first)
    self.REF_ID = inc_result
    end

    end 

end

В журнале появляется следующее сообщение об ошибкефайл, когда я нажимаю на кнопку «Сохранить»:

NoMethodError (undefined method `REF_ID=' for #<ReferencesController:0xb69f4ca8>):

Спасибо за любые предложения по этому вопросу

1 Ответ

1 голос
/ 05 марта 2012

Вы пытаетесь установить атрибут REF_ID (который я предполагаю, что это столбец базы данных) на вашем контроллере, а не на вашей модели.Этот код будет вызываться каждый раз, когда веб-запрос на ReferencesController достигает вашего приложения.

Возможно, вы хотели переместить логику в before_create хук в модели References?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...