如何在另一个控制器的视图中打印一个模型的数据

时间:2013-06-14 15:29:23

标签: ruby-on-rails ruby-on-rails-3

这有些初学者的问题,但不幸的是我无法找出解决方案,因此在SO处提出要求。

我有两个模型:NameNameProfile

Name:仅name属性

NameProfilename_id, email属性。

现在,我想在list of emails

中打印/names/show.html.erb

NameController.rb

def show
  @name = name.nameprofiles.email
end

/views/names/show.html.erb

<%= name.email %>

但是我得到了未定义的方法错误。任何的想法 ?

2 个答案:

答案 0 :(得分:0)

您想要做类似

的事情
class Name < ActiveRecord::Base
   has_many :nameProfiles
end

class NameProfile < ActiveRecord::Base
   belongs_to :name
end

然后name.nameprofiles.email应该可以工作。查看http://guides.rubyonrails.org/association_basics.html了解详情。

答案 1 :(得分:0)

show action没有做的一件事就是找到特定的user。你应该重构这样的事情:

def show
      @name = Name.find(params[:id])
      @nameprofile = @name.nameprofiles
    end

现在您可以引用您的用户及其nameprofile协会。

在您的观看中:

<%= @nameprofile.email %>

这应该能够为您提供用户的电子邮件。