我只想在没有视图的情况下进行 Rails 操作。
在我的'routes.rb'
resources :pictures do
member do
post 'dislike'
end
end
在我的“PictureController.rb”
中,
这不起作用
def dislike
@picture = Picture.find(params[:id])
@like = Like.find(:user_id => current_user.id, :picture_id => params[:id])
@like.destroy
respond_to do |format|
format.html { render :action => :show, :id => params[:id], notice: 'You don\'t like this picture anymore.' }
format.json { render json: @picture }
end
end
也不这样做
def dislike
@picture = Picture.find(params[:id])
@like = Like.find(:user_id => current_user.id, :picture_id => params[:id])
@like.destroy
respond_to do |format|
format.html { redirect_to @picture, notice: 'You don\'t like this picture anymore.' }
format.json { render json: @picture }
end
end
甚至这个(但对我来说不是这种情况,我想通过 json 和 html 向用户提供反馈)
def dislike
@picture = Picture.find(params[:id])
@like = Like.find(:user_id => current_user.id, :picture_id => params[:id])
@like.destroy
render :nothing => true
end
但我不断收到此错误消息:
ActionView::MissingTemplate: Missing template pictures/dislike, application/like with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}.
我应该如何告诉 rails PicturesController 中的这个动作不需要视图?
解决了!
我并没有真正解决告诉 rails 我不需要视图的问题,我只是创建了另一个控制器,将方法放入其中,并告诉 rails 路由将不喜欢的操作与match
调用相匹配。我不能确定,但我认为这是resources :picture
我routes.rb
文件中的问题......
但无论如何,谢谢你们!=)