Sal*_*lil 2 ruby mysql boolean ruby-on-rails
我有一个'用户'表,其字段名称为'process_salary?' 它有一个布尔数据类型
@user = User.create(params[:user])
if @user.process_salary?
//some code here
else
//some code here
end
Run Code Online (Sandbox Code Playgroud)
当我创建一个新的用户对象并检查process_salary时,它会给我以下错误
NoMethodError: undefined method `process_salary?' for #<User:0xb6ac2f68>
Run Code Online (Sandbox Code Playgroud)
为什么会出现此错误?我可以在不更改列名的情况下避免使用它吗?
当我用调试器检查它时,它第一次崩溃,但之后它正常运行
问号在ActiveRecord中具有特殊含义.它可用于检查字段是否为真.您正在使用它作为您的字段名称的一部分,这不是一个好主意.你可以尝试@ user.process_salary ?? 存在,但我认为最终将数据库列更改为'process_salary'是最容易的.
旁注:'rails console'非常适合玩弄模型.
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |