我在保存之前使用过滤器来设置实例的主键。
这是我的控制器方法:
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>):
感谢您就此事提出任何建议
答案 0 :(得分:1)
您正在尝试在Controller上设置REF_ID属性(我假设它是一个数据库列),而不是您的模型。每当ReferencesController
的网络请求到达您的应用时,都会调用该代码。
也许您想将逻辑移到before_create
模型中的References
挂钩?