【发布时间】:2016-01-09 11:21:13
【问题描述】:
我对 Ruby on rails 或一般编码相当陌生。我一直在关注this tutorial,使用acts-as-commentable-with-threading-gem 在我的Ruby on rails web 应用程序上构建评论系统。
我正在尝试对“发布”和“回复”操作进行 ajaxify 处理,以便将新的 cmets 附加到页面而无需重新加载。但它会导致以下错误:
"ActionView::MissingTemplate - Missing partial comments/_comment with {:locale=>[:en], :formats=>[:js, :html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :arb, :jbuilder]}."
我一直在尝试解决这个问题,但到目前为止还没有运气。 我已将 cmets 控制器的“def create”部分修改如下:
def create
commentable = commentable_type.constantize.find(commentable_id)
@comment = Comment.build_from(commentable, current_user.id, body)
@comments = Comment.where(commentable_id: commentable_id)
respond_to do |format|
if @comment.save
make_child_comment
format.html { redirect_to(:back) }
format.js
else
format.html { render :action => "new" }
format.js
end
end
end
并使用以下代码创建了一个 views/cmets/create.js.erb 文件:
$('.comments-container').prepend("<%= j render @comments %>");
当然还有修改表单中的表单动作以及回复模板以响应异步请求:
_reply.html.erb 行:7
<%= form_for @new_comment, remote: true do |f| %>
_form.html.erb 行:1
<%= form_for @new_comment, remote: true do |f| %>
我做错了什么?
【问题讨论】:
标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4