Имам прикачен формуляр към профилите, където могат да се изпращат кратки коментари. Искам обаче да уловя името на автора, за да мога да го покажа в подсказка, когато задържа курсора на мишката върху основния текст на коментара.
В моя create
метод в контролера имам:
def create
@comment = Comment.new(params[:comment])
@comment.save!
redirect_to profile_path(@comment.profile)
end
В моята миграция:
t.timestamps
t.integer :profile_id
t.string :author_id
t.string :body
Модел на профила:
belongs_to :user
accepts_nested_attributes_for :user
has_many :comments
Коментар модел:
belongs_to :profile
ProfilesController:
def show
@user = User.find(params[:id])
@profile = user.profile
@superlative = @profile.superlatives.new
end
И моята форма:
<%= form_for @comment do |f| %>
<%= f.hidden_field :profile_id, :value => @profile.id %>
<%= f.hidden_field :author_id, :value => "#{current_user.profile.first_name} #{current_user.profile.last_name}" %>
<%= f.text_field :body %>
<%= f.submit 'Add new' %>
<% end %>
Мислех да свържа :author_id с current_user.profile.id и да използвам тази асоциация за показване на :first_name и :last_name, които са атрибути на профила. Или има по-прост, по-добър начин?
АКТУАЛИЗАЦИЯ: Накарах го да показва името, но все още съм любопитен дали има по-добър начин.