0

我正在研究一個簡單的應用程序,允許用戶寫一篇文章(parent_post),和另一個用戶來回答這個文章(child_post)。 我正在使用Ancestry gem來跟蹤帖子之間的關係。 Ancestry是一個gem /插件,允許將模型的記錄組織爲樹結構(或層次結構)。它揭示了所有標準的樹結構關係(父,根,子,祖先......)。Rails:與模型關聯使用祖先寶石(樹結構模型)的問題

應用程序的數據庫schema.rb:

create_table "posts", :force => true do |t| 
    t.text  "title" 
    t.text  "content" 
    t.datetime "created_at",   :null => false 
    t.datetime "updated_at",   :null => false 
    t.integer "user_id" 
    t.string "ancestry" 
    end 

    create_table "users", :force => true do |t| 
    t.string "email",     :default => "", :null => false 
    t.string "encrypted_password",  :default => "", :null => false 
    t.string "reset_password_token" 
    t.datetime "reset_password_sent_at" 
    t.datetime "created_at",        :null => false 
    t.datetime "updated_at",        :null => false 
    t.string "name" 
    end 

挑戰: 我要顯示其在child_post展會鑑於parent_post的作者信息。 通過祖先寶石,你可以調用「父母」,並處理帖子表格中的所有列。 posts表(見上文)有一個user_id列,所以我可以調用

@post.parent.user_id 

給我的用戶ID,它的工作原理。 但我想顯示用戶名而不是user_id。

當然,user_id和username(name)是通過連接的用戶表(見上面的schema.rb),但是我怎樣才能在這裏解決它們呢? @ post.parent.user_id.name不起作用。

的車型:

class User < ActiveRecord::Base 
has_many :posts 
end 

class Post < ActiveRecord::Base 
has_ancestry 
belongs_to :user 
end 

我還是很新的Rails和困在這裏。有沒有可能是我看不到的超級簡單解決方案?

非常感謝您的幫助!

回答

0

@ post.parent.user.name?我建議在Post模型而不是您的視圖或控制器上使用此方法。稱它@ post.original_poster_name或類似的。

+0

完美!我知道這是一個簡單的問題。天哪。非常感謝! – YvonC