【发布时间】:2011-11-25 20:40:56
【问题描述】:
我在尝试使用 ajax 响应进行 POST 时收到 ActionviewTemplate 错误。 'create' 方法一直在寻找默认的 create.js.erb 文件,但我特别指出了它应该呈现的文件。
我尝试在我的 respond_to 块中添加“结束并返回”,但没有任何反应。
Started POST "/appreciations" for 127.0.0.1 at 2011-11-25 13:30:09 -0700
Processing by AppreciationsController#create as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"T3PeKRaSJSrESFTOCQ7+4LiM4BKaWkcaQ6cXpSqK38k=", "appreciation"=>{"liked_id"=>"75"}, "commit"=>"Like"}
User Load (1.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1
Completed in 343ms
ActionView::MissingTemplate (Missing template appreciations/create with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml, :haml], :formats=>[:js, "application/ecmascript", "application/x-ecmascript", "*/*"], :locale=>[:en, :en]} in view paths "/Users/iHal/Desktop/WORK/GP/app/views"
欣赏控制器
class AppreciationsController < ApplicationController
before_filter :authenticate_user!
def create
if params[:liked_id]
@post = Post.find(params[:appreciation][:liked_id])
current_user.like!(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js { render :action => "create_like" }
end
elsif params[:voted_id]
@post = Post.find(params[:appreciation][:voted_id])
current_user.vote!(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js { render :action => "create_vote" }
end
elsif params[:thanked_id]
@post = Post.find(params[:appreciation][:thanked_id])
current_user.thank!(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js {render :action => 'create_thank'}
end
end
end
def destroy
if params[:liked_id]
@post = Appreciation.find(params[:id]).liked
current_user.unlike!(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js { render :action => "destroy_like" }
end
elsif params[:vote_id]
@post = Appreciation.find(params[:id]).voted
current_user.unvote!(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js { render :action => "destroy_vote" }
end
elsif params[:thanked_id]
@post = Appreciation.find(params[:id]).thanked
current_user.unthank!(@post)
respond_to do |format|
format.html { redirect_to @post }
format.js { render :action => "destroy_thank" }
end
end
end
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 model-view-controller