Ruby on rails Rails,在表上使用.find时,不会将符号隐式转换为整数

Ruby on rails Rails,在表上使用.find时,不会将符号隐式转换为整数,ruby-on-rails,Ruby On Rails,我试图通过数据库为当前用户创建搜索,但在传入my.find params时出现此错误,没有将符号隐式转换为整数。我将当前用户参数存储在@current_user中,并希望找到该用户编写的所有文章(即在名为user_id的列中搜索current_user.id)。我是ruby新手,无法通过谷歌搜索了解这里发生了什么,非常感谢您的帮助 应用程序控制器: helper_method :current_user def current_user @current_user ||= User.fi

我试图通过数据库为当前用户创建搜索,但在传入my.find params
时出现此错误,没有将符号隐式转换为整数。我将当前用户参数存储在@current_user中,并希望找到该用户编写的所有文章(即在名为user_id的列中搜索current_user.id)。我是ruby新手,无法通过谷歌搜索了解这里发生了什么,非常感谢您的帮助

应用程序控制器:

helper_method :current_user

def current_user
   @current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def manage
  @article = Article.find(current_user.id[:user_id])
end
物品管理员:

helper_method :current_user

def current_user
   @current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def manage
  @article = Article.find(current_user.id[:user_id])
end
user.rb

class User < ActiveRecord::Base 
   attr_accessor :password
   ...
   has_many :article
end
class用户
第1.rb条

class Article < ActiveRecord::Base
    belongs_to :user
end
类文章
您可以将此更改为

Article.where(user_id: current_user.id)
但更好的方法是只使用您创建的关联(先将其更改为
has\u many:articles


find\u by\u user\u id
find\u by(user\u id:current\u user.id)
可以工作,但只返回一篇文章

current_user.id
是您要搜索的id。例如,
@article=article.find(当前用户id)
。这是最好的答案。使用关联。你能解释一下使用
、where
、按用户id查找和
当前用户文章之间的区别吗?老实说,我最喜欢使用关联,因为它是键入关联的最短方式,但我希望听到(或者阅读,如果你可以链接有关此的文档/指南的话)内存使用、代码版本等方面的参数关联是实现这一点的惯用方法。任何性能上的差异都是最小的。这是您的rails指南,从用户到文章都有很多关联。