2013-01-12 61 views
0

在我的應用程序,我有管理的子文件夾和控制器那裏,方法:的Rails獲得字段從另一個表管理部分

class Admin::UserGroupsController < ApplicationController 
    def index 
    @pre_usergroups = UserGroup.all 
    @user_groups = Kaminari.paginate_array(@pre_usergroups).page(params[:page]).per(50) 
    render :layout => 'admin' 
    end 
end 

路線:

namespace :admin do 
resources :user_groups 
end 

和模型(而不是在子目錄管理員):

class UserGroup < ActiveRecord::Base 
    attr_accessible :group_id, :user_id 
    belongs_to :group 
    belongs_to :user 
    validates :user_id, :presence => {:message => I18n.t(:user_not_chosen)} 
    validates :group_id, :presence => {:message => I18n.t(:group_not_chosen)} 


    def get_group_name(id) 
    @gr = Group.find(id) 
    @gr.name 
    end 

    def get_user_name(id) 
    @user = User.find(id) 
    @user.email 
    end 
end 

而且我沒有看到驗證消息的,它的工作....它跳過驗證:

和看法:

%table.table.table-striped 
    %tr 
    %th 
     Название группы: 
    %th 
     Пользователь: 
    [email protected]_groups.each do |u| 
    %tr 
     %td 
     = u.get_group_name(group_id) 
     %td 
     = u.user_id 

但爲什麼我得到

undefined local variable or method `group_id' for #<#<Class:0xb352734>:0xab437dc> 

,所以我沒有去模型方法... 我怎麼能訪問模型的方法?

回答

0

如錯誤group_id中所述未定義,這是真的。 你應該調用它,如下所示:

= u.get_group_name(u.group_id)

因爲group_idUserGroup對象

不過的屬性,我不明白你爲什麼要製作方法get_group_nameget_user_name,爲什麼不你剛剛使用u.group.nameu.user.email

+0

ahahaha,哈哈....真的,我怎麼能忘記它....這不是個好主意,不睡覺2晚)謝謝,並且對於這樣的問題感到抱歉 – brabertaser19

+0

歡迎您,請考慮使用關聯就像我在答案中所添加的那樣。 – Khaled

+0

因爲現在我有一些關係的麻煩...我現在不知道他們,所以我決定硬編碼方法一段時間 – brabertaser19

相關問題