В моем приложении RoR появляется следующая ошибка:
Ошибка RJS:
TypeError: элемент равен нулю
Element.update ("извещение", "комментарий опубликован");
Element.update ("allcomments", "\ n \ n \ n \ n \ n сейчас?" \ n \ n \ n \ n \ n
\ n ");
Но когда я нажимаю кнопку обновления, я вижу свое частичное обновление.
Вот мой код:
show_comments View:
<table>
<% comments.each do |my_comment| %>
<tr>
<td><%=h my_comment.comment%></td>
</tr>
<% end %>
</table>
Показать представление:
<div class="wrapper">
<div class="rescale">
<div class="img-main">
<%= image_tag @deal.photo.url %>
</div>
</div>
<div class="description">
<p class ="description_content">
<%=h @deal.description %>
</p>
</div>
</div>
<p>
<b>Category:</b>
<%=h @deal.category %>
</p>
<p>
<b>Base price:</b>
<%=h @deal.base_price %>
</p>
<%#*<p>%>
<%#*<b>Discount:</b>%>
<%#=h @deal.discount %>
<%#*</p>%>
<%= link_to 'Edit', edit_deal_path(@deal) %> |
<%= link_to 'Back', deals_path %>
<p>
<%= render :partial=>'deal_comments', :locals=>{
:comments=>Comment.new(:deal_id=>@deal.id)} %>
</p>
<div id="allcomments">
<%= render :partial=>'show_comments', :locals=>{
:comments=>Comment.find(@deal.comments)} %>
</div>
Контроллер:
def create
@comment = Comment.new(params[:comment])
render :update do |page|
if @comment.save
page.replace_html 'notice', 'Comment Posted'
else
page.replace_html 'notice', 'Something went wrong'
end
page.replace_html 'allcomments', :partial=> 'deals/show_comments',
:locals=>{:comments=> @comment.deal.comments}
end
end
def show_comments
@deal = Deal.find(params[:deal_id])
render :partial=> "deals/show_comments", :locals=>{:comments=>@deal.comments}
end
end