Ruby on rails Can';t添加会话变量-ActiveModel::MissingAttributeError

Ruby on rails Can';t添加会话变量-ActiveModel::MissingAttributeError,ruby-on-rails,session-variables,Ruby On Rails,Session Variables,我对Rails不是很有信心,但最近开始添加自定义会话变量以存储一些数据,如id。我正在尝试将调用id设置为最近创建的值,但不断出现错误 代码: 在同一控制器中的其他操作中,这完全相同,但我得到: ActiveModel::MissingAttributeError (can't write unknown attribute `callid`) 我只是通过POST调用调用此操作,以便操作一些数据并设置此会话变量以供以后使用。关于会话变量是如何工作的,我肯定缺少一些基本的东西。是否有任何明显的原

我对Rails不是很有信心,但最近开始添加自定义会话变量以存储一些数据,如id。我正在尝试将调用id设置为最近创建的值,但不断出现错误

代码:

在同一控制器中的其他操作中,这完全相同,但我得到:

ActiveModel::MissingAttributeError (can't write unknown attribute `callid`)

我只是通过POST调用调用此操作,以便操作一些数据并设置此会话变量以供以后使用。关于会话变量是如何工作的,我肯定缺少一些基本的东西。是否有任何明显的原因会导致此错误?

在rails中,在模型名上创建新记录只是创建方法

callid = Call.createCall(sessionid,tp_cd)
所以它应该是这样的:

callid= call.create(params)
在params中,您需要这样定义它:列名:您的变量/值。那么,您的调用模型中有哪些列?如果您有session_id列,它将如下所示:

callid= call.create(session_id: value_given )

它给出了一个错误,因为Rails查找的是名为
Session
的模型,而不是作为请求周期一部分的Session对象

您可以像这样获得会话

request.session[:callid] = callid

尝试执行
request.session[:callid]=callid
以查看是否有其他任何东西干扰了您的会话。嘿,Iceman,通过使用request.session[:callid]我成功地使其工作,不确定这与正常的有什么不同,但现在似乎一切都正常。这是不同的,因为如果您只使用
session
,Rails查找名为
会话
的模型,而不是作为请求周期一部分的
会话
。我希望我没有把你弄糊涂。
request.session[:callid] = callid