2013-08-28 69 views
0

我有兩個模型及其關聯的表格以belongs_to和has_many關係鏈接在一起。has_many/belongs_to:顯示每個關聯的記錄

這裏是架構

ActiveRecord::Schema.define(version: 20130827203308) do 

    # These are extensions that must be enabled in order to support this database 
    enable_extension "plpgsql" 

    create_table "posts", force: true do |t| 
    t.text "message" 
    t.integer "student_id" 
    end 

    add_index "posts", ["student_id"], name: "index_posts_on_student_id", using: :btree 

    create_table "students", force: true do |t| 
    t.string "first_name" 
    t.string "last_name" 
    t.string "email" 
    t.string "number" 
    t.string "college" 
    t.string "password" 
    t.float "budget" 
    t.string "picture" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 

end 

我可以去軌控制檯,並做

a = Student.find(1) 
c = a.posts.create(:message => "testing") 
c.save! 

(0.4ms) BEGIN 
    (0.4ms) COMMIT 
=> true 

我不知道如何把它畫背出在視圖中。我不知道如何在軌道控制檯中將其拉回。

我有我的觀點index.html.erb與

Message: <%= @student.posts.message %> 

,並在我的控制器@student = Student.find(1)

在我的本地越來越

undefined method `message' 

:3000

它不是一種方法。我正在試圖從我的桌子上畫東西。

+0

上面說的方法,因爲你打電話'Student'對象上的'message'。 – Miotsu

回答

3

@student.posts返回屬於此特定Student對象的Post對象的列表。

您通過學生的每一個職位需要循環,以顯示其消息:

student = Student.first # retrieves the first Student of the DB 
posts = student.posts # retrieves the student's posts 
posts.each do |post| # loop through each post of the student 
    puts post.message # outputs the content of the message attribute of the post 
end 

在視圖中,那將是怎樣的一樣:

Student: 
<%= @student.first_name + ' ' + @student.last_name %> 

Posts: 
<% @student.posts.each do |post| %> 
    Post #<%= post.id %> 
    Message: <%= post.message %> 
<% end %> 
相關問題