无法添加会话变量 - ActiveModel :: MissingAttributeError

时间:2017-01-05 13:54:10

标签: ruby-on-rails session-variables

我对Rails不太自信,但最近开始添加自定义会话变量以存储一些数据,例如id。我正在尝试将呼叫ID设置为最近创建的值但仍然收到错误。

代码:

callid = Call.createCall(sessionid,tp_cd)
session[:callid] = callid

这同样适用于同一控制器中的其他操作,但我得到:

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

我只是通过POST调用来调用此操作,以便操作某些数据并将此会话变量设置为稍后使用。关于会话变量如何工作,必须有一些基本的东西。有什么明显可能导致此错误吗?

3 个答案:

答案 0 :(得分:1)

你的模型中有session.rb吗?

答案 1 :(得分:0)

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

callid = Call.createCall(sessionid,tp_cd)

所以它应该是这样的:

callid= call.create(params)

在params中你需要像这样定义:列名:你的变量/值。那么Call模型中的列是什么?如果你有session_id列,它将是这样的:

callid= call.create(session_id: value_given )

答案 2 :(得分:0)

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

您可以像这样进行会话

request.session[:callid] = callid