В настоящее время у меня есть приложение, которое позволяет пользователям комментировать запись в блоге, называемую «работа». Вот модель отношений:Значение объекта Rails не отображается на странице просмотра. Нет ошибок
class User < ActiveRecord::Base
has_many :works
has_many :comments
class Work < ActiveRecord::Base
belongs_to :user
has_many :comments
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :post
belongs_to :work
Там есть форма на заводе показать страницу, которая позволяет пользователям размещать комментарий:
<%= form_for([@work, @comment]) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Post feedback or contribute content
to this work!" %>
</div>
<%= f.submit "Post", class: "btn btn-small btn-primary" %>
<% end %>
Поскольку форма комментария находится на странице Works, контроллер Works имеет следующая логика построения для комментария:
def show
@work = Work.find(params[:id])
@comment = @work.comments.build
@comment.user = current_user
@activities = PublicActivity::Activity.order("created_at DESC").where(trackable_type: "Work", trackable_id: @work).all
@comments = @work.comments.order("created_at DESC").where(work_id: @work).all
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @work }
end
end
контроллер Комментариев затем создает комментарий:
def create
@work = Work.find(params[:work_id])
@comment = @work.comments.build(params[:comment])
@comment.user = current_user
if @comment.save
#flash[:success] = "Post created!"
redirect_to @work
else
render 'home#index'
end
end
Моя проблема заключается в том, что на странице «Работы» будет отображаться имя пользователя, отправившего комментарий, но по какой-то причине оно не отображает значение поля «контент», даже если в базе данных есть значение содержимого ! У меня нет сообщений об ошибках. Я просто получаю пустой ящик, где должен быть текст содержания.
Вот Работы показывают страницу, которая отображает содержимое (минус HTML форматирования):
<% @comments.each do |comment| %>
<%= image_tag @comment.user.photo.url(:avatar) %> <%= link_to @comment.user.full_name, @comment.user if @comment.user %>
<%= @comment.content %>
<% end %>
Если я заменяю @ comment.content что-то вроде @ comment.work_id, я получить номер " 1 "для отображения на веб-странице. Как я уже упоминал ранее, действительно существует допустимое значение для контента, хранящегося в базе данных. Почему он не будет отображаться? Почему нет ошибки?
Спасибо!
Хороший лорд. Это все, что мне нужно было сделать ?! Еще раз спасибо семь! Мне действительно нужно перестать работать над этим так поздно ночью: D. – winston