我对 Ruby 和 Rails 完全陌生。目前,我正在使用辅助方法。如何在我的模型“用户”中编写与此相同的代码,以便从控制器和视图访问所有这些变量?
在帮助程序中以这种方式编写代码是 100% 功能性的:
module HomeHelper
def init(user_id)
@friends = Array.new
@followers = Array.new
@user = User.find_by_id(user_id) #Get User
@friends = @user.users #Get all his friends
#
@statuses = Array.new #
@friends.each do |friend| #
@statuses += friend.statuses #Get all statuses for 'a' friend, then loop
end #
@statuses += @user.statuses #
@statuses = @statuses.sort_by {|status| status.created_at}.reverse!
@friendsof = Array.new
@filtered_friendsof = Array.new
@friends.each do |friend|
@friendsof += friend.users
end
@friendsof.each do |friendof|
unless (@friends.include?(friendof))
if @user != friendof
@filtered_friendsof << friendof
end
end
end
end
@filtered_friendsof = @filtered_friendsof.uniq
end
控制器
class HomeController < ApplicationController
def index
@user_id=3
end
end
模型:
class User < ActiveRecord::Base
has_many :statuses
has_and_belongs_to_many(:users,
:join_table => "user_connections",
:foreign_key => "user1_id",
:association_foreign_key => "user2_id")
#has_many :user_connections
end