【发布时间】:2012-10-04 03:29:45
【问题描述】:
我对 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
【问题讨论】:
-
如果我没听错的话.. 你希望你的助手可以被所有控制器访问吗?
-
这段代码应该按原样进入'Helper',还是应该进入'Model'?如果它应该进入Model,那我该怎么做?跨度>
标签: ruby-on-rails ruby model helper