我对Rails不太自信,但最近开始添加自定义会话变量以存储一些数据,例如id。我正在尝试将呼叫ID设置为最近创建的值但仍然收到错误。
代码:
callid = Call.createCall(sessionid,tp_cd)
session[:callid] = callid
这同样适用于同一控制器中的其他操作,但我得到:
ActiveModel::MissingAttributeError (can't write unknown attribute `callid`)
我只是通过POST调用来调用此操作,以便操作某些数据并将此会话变量设置为稍后使用。关于会话变量如何工作,必须有一些基本的东西。有什么明显可能导致此错误吗?
答案 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