【发布时间】:2014-09-10 20:53:51
【问题描述】:
我是 Rails 新手 - 任何帮助都将不胜感激。 我想知道我如何实现 rails 内置函数“.uniq” -
我只想在我的 index.html.erb 页面中显示活动组织者 - 也就是说,我只想仅显示创建了活动的用户
用户A创建了2个事件,用户B创建了14个事件,用户C创建了0个事件
当我遍历@events并调用event.user.full_name时——用户A的名字出现了2次,用户B的名字出现了14次,用户C的名字没有出现
问题:如何让用户 A 的姓名和用户 B 的姓名仅显示 一次(使用 rails 内置方法“.uniq”),尽管两个用户都创建了多个事件。我愿意接受除 rails 功能以外的任何其他建议。 - 非常感谢
我已将所有代码放在下面:
视图:app/views/users/index.html.erb
<% @event.each do |event| %>
<%= event.user.full_name %>
<% end %>
模型:user.rb & event.rb
class User < ActiveRecord::Base
has_many :events, dependent: :destroy
end
class Event < ActiveRecord::Base
belongs_to :user
end
控制器:user_controller.rb
class UsersController < ApplicationController
before_action :set_user, only: [:show]
before_filter :authenticate_user!
# GET /users
# GET /users.json
def index
@users = User.all
@event = Event.all
end
# GET /users/1
# GET /users/1.json
def show
@user = User.find(params[:id])
@events = @user.events.order(:date)
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:email, :password, :password_confirmation, :firstname, :lastname, :dob, :gender, :description, :role)
end
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4