目前,在我的要求我的模型有:实习空字符串错误
belongs_to :requestor, :class_name => 'User'
所以请求者是CURRENT_USER。
问题是当current_user
点击创建按钮为请求提交表单时,所有属性都会更新到表单中的数据库。
但由于requestor_id
不是填写在表单中的值,因此创建新的请求记录时会在数据库中返回空值。
我想要的是当用户单击创建按钮时,在请求表中的requestor_id
列中更新的整数(相当于Users表的主键)。
所以我想,也许增加一个requestor_id
作为PARAMS为创建动作的符号会解决:
def create_common
@a = Request.new
b = @a.requestor_id
@resource = yield params[:contact + "#{b}".to_sym]
self.resource = @resource
而是将其返回以下错误:
interning empty string
感谢您的任何建议。
这结束了工作: @ resource.requestor = CURRENT_USER 我不知道的唯一的事情是如何做的事情上面做不用户主键分配给requestor_id。我认为我们必须指定requestor_id,但显然并非如此。任何洞察到这是如何工作的?谢谢。 – JohnMerlino
在Rails中,当你将一个对象分配给关系时(例如:current_user是一个用户对象到请求者),它会自动提取对象的ID(在这种情况下是用户的ID)并根据关系将其分配给外键(在这种情况下requestor_id)。你可以在ActiveRecord gem中找到这个功能的详细源代码。 –
感谢您的解释。 – JohnMerlino