在我的应用程序中,每个活动都有一项运动,用户有很多活动,我试图列出用户通过活动练习的所有不同运动。活动的名称也是运动的名称活动与之相关联。
它给了我以下错误:
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) %>
任何帮助将不胜感激:)
答案 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