Я работаю над простым приложением, которое позволяет пользователю писать сообщение (parent_post) и другой пользователь, чтобы ответить на это сообщение (child_post). Я использую Ancestry gem для отслеживания отношений между сообщениями. Ancestry - это жемчужина/плагин, который позволяет записывать записи модели в виде древовидной структуры (или иерархии). Он предоставляет все стандартные отношения древовидной структуры (родительский, корневой, дочерний, предки ...).Рельсы: проблема с модельной ассоциацией с использованием Ancestry Gem (Tree Structur Model)
База 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
Задача: Я хочу, чтобы отобразить информацию о авторе parent_post в шоу зрения child_post. С помощью родословной вы можете вызвать «родитель» и указать все столбцы внутри таблицы сообщений. сообщений таблицы (см выше) имеет столбец user_id, так что я могу назвать
@post.parent.user_id
показать мне идентификатор пользователя, который работает. Но я хотел бы показать имя пользователя вместо user_id.
Конечно, user_id и имя пользователя (имя) связаны с подключенной таблицей пользователей (см. 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 и застрял здесь. Может быть, простое простое решение, которого я не вижу?
Благодарим вас за помощь!
Отлично! Я знал это, просто. Гоша. Спасибо огромное! – YvonC