Select 列使用包含在 rails 中

Select column using includes in rails

我的查询是: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 methodname' for #)`。如何在我的视图中访问消息 table 和用户 table 中的字段。

试试下面的代码。

@messages.each 留言| <%= message.user.name %> 结束