UsersController中的ActiveRecord :: StatementInvalid #show

时间:2018-02-14 11:01:42

标签: ruby-on-rails ruby oracle

无法访问此地址:127.0.0.1/users/sign_up。 当我转到页面时,出现以下错误:

OCIError: ORA-01722: invalid number: SELECT * FROM (SELECT "BLACKROW"."V_B_USERS".* FROM "BLACKROW"."V_B_USERS" WHERE (USER_ID = 'sign_up') ORDER BY "BLACKROW"."V_L_USERS"."USER_ID" ASC ) WHERE ROWNUM <= 1

在此操作上有一个错误:

# Use callbacks to share common setup or constraints between actions.

    def set_user
      @user = User.where('USER_ID = ?', params[:id]).first
    end

怎么了?如何解决这个问题呢?

2 个答案:

答案 0 :(得分:0)

... WHERE (USER_ID = 'sign_up') 

&#34; ID&#34;通常(再次:通常)表示NUMBER。如果您查看V_L_USERS表,它会说什么 - USER_ID数据类型是什么?如果它确实是一个NUMBER,那么使用字符串(&#39; sign_up&#39;)将会引发INVALID NUMBER错误。

答案 1 :(得分:0)

您的ID参数似乎存在问题。

旁注:找到用户的更简洁方法是使用Users.find(params [:id])