查询全部不同,参数数量错误

时间:2014-11-14 11:56:32

标签: ruby-on-rails

在我的应用程序中,每个活动都有一项运动,用户有很多活动,我试图列出用户通过活动练习的所有不同运动。活动的名称也是运动的名称活动与之相关联。

它给了我以下错误:

wrong number of arguments (1 for 0)

def show_other
 @account = Account.find(params[:id])
@activity = @account.activities.last(20)
@sports = @activity.select(:name).distinct //error here//
end

我如何称呼这个观点:

    <%= link_to friend.name, pages_show_other_path(:id => friend.id) %>

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:1)

last()将始终返回一个数组,并且您无法在数组上使用该选择。

尝试这样的事情:

Activity.where(account_id: params[:id]).pluck(:name).last(20).uniq

答案 1 :(得分:1)

这是你正在寻找的吗?:

def show_other
  @account = Account.joins(:activities).find(params[:id])
  @activities = @account.activities.uniq.last(20)
  @sports = @activities.map(&:name)
end