我的查询为:Message.joins(:user).select('messages.*, users.name').where("users.name LIKE ? OR messages.to LIKE ? " ,"%#{@query}%", "%#{@query}%").paginate(:page => params[:page], :per_page => 5)
。我想使用包括而不是连接。所以我将查询更改为:Message.includes(:user).select('messages.*, users.name').where("users.name LIKE ? OR messages.to LIKE ? " ,"%#{@query}%", "%#{@query}%").paginate(:page => params[:page], :per_page => 5)
。
在我的观看中,我循环播放消息,并使用以下命令获取用户名:<%= message.name%>。但在将联接更改为包含后,我收到错误:NoMethodError (undefined method
名称' #)`。如何在视图中访问消息表和用户表中的字段。
答案 0 :(得分:4)
请尝试以下代码。
@ messages.each do | message | <%= message.user.name%> 端