Ruby 上 Rails: Ajax 部分更新不起作用
按下按钮时,我几乎不尝试强制执行部分内存。 我只想更新 div, 而不是整个页面完全。 那就是我的意思:
然后在我的部分中
我有一些基本的 html 和两个类似的按钮:
我的 confessions_controller.rb:
最后
:
发送到我的数据库工作,但现在页面被重定向到
/标识符可能不同/, 不仅仅是更新 div. 我究竟做错了什么? 我是新的b。 Rails, 因此,我可以错过一些完全明显的东西......
EDIT: 这是我的文件夹结构:
我的想法:
我的部分:
我的控制器:
我的文件。 js.erb:
后
<div id="ajax">
<%= render 'layouts/confessions' %>
</div>
然后在我的部分中
_confessions.html.erb
我有一些基本的 html 和两个类似的按钮:
<%= form_tag/ { :controller => :confessions, :action => :upvote, :id => conf.id }, { :method => :put } / do %>
<%= submit_tag 'Like' %>
<% end %>
我的 confessions_controller.rb:
def upvote
@confession = Confession.find/params[:id]/
Confession.increment_counter :upvotes, @confession
respond_to do |format|
format.js
end
end
最后
upvote.js.erb
:
$/'#ajax'/.html/"<%= escape_javascript/render/:partial => 'confessions'//.html_safe %>"/;
发送到我的数据库工作,但现在页面被重定向到
/upvote?id=9
/标识符可能不同/, 不仅仅是更新 div. 我究竟做错了什么? 我是新的b。 Rails, 因此,我可以错过一些完全明显的东西......
EDIT: 这是我的文件夹结构:
我的想法:
views/pages/home.html.erb
我的部分:
views/layouts/_confessions.html.erb
我的控制器:
controllers/confessions_controller.rb
我的文件。 js.erb:
views/confessions/upvote.js.erb
后
rake routes
confessions GET /confessions/.:format/ confessions#index
POST /confessions/.:format/ confessions#create
new_confession GET /confessions/new/.:format/ confessions#new
edit_confession GET /confessions/:id/edit/.:format/ confessions#edit
confession GET /confessions/:id/.:format/ confessions#show
PUT /confessions/:id/.:format/ confessions#update
DELETE /confessions/:id/.:format/ confessions#destroy
upvote /upvote/.:format/ confessions#upvote
downvote /downvote/.:format/ confessions#downvote
root / pages#home
没有找到相关结果
已邀请:
2 个回复
董宝中
赞同来自:
FYI:
https://coderoad.ru/4227775/
然后改变它
到:
董宝中
赞同来自:
另外,阅读路线 rails, 要了解如何配置路由 PUT confessions/upvote.
http://guides.rubyonrails.org/ ... tions