gpt4 book ai didi

ruby-on-rails - Ruby on Rails——用 javascript 更新部分新值?

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:21 26 4
gpt4 key购买 nike

每次单击链接时,我都想在 Rails 中刷新部分内容,但它似乎什么也没做。

有人能发现错误吗?

index.html.erb

<% @users.each do |u| %>
<% if !u.nil? and u.department_id == department.id %>
<%= link_to "#{u.first_name} #{u.last_name}", professor_refresh_path(u.id), remote: true %>
<% end %>
<% end %>
<div id="profile"></div>

_profile.html.erb

Hello, <%= user %>

refresh.js.erb

$('#profile').html('<%=j render partial: "/professors/profile", locals: {user: @user} %> ');

professors_controller.rb

    def refresh
@user = @user + 1
respond_to do |format|
format.html
format.js
end
end

routes.rb

    resources :professors do
get 'refresh'
end

最佳答案

首先,在您的 refresh.js.erb 中,您已将配置文件指定为类。它应该是一个ID。尝试使用

$('#profile').replaceWith("#{escape_javascript(render partial: 'professors/profile', locals: { user: @user })}"); 

因为@user 是刷新方法中唯一的实例变量。此外,从您在刷新方法中的代码来看,您似乎只是在更新计数。因此我的建议是用新值更新 View 上的值,而不是替换整个部分。

关于ruby-on-rails - Ruby on Rails——用 javascript 更新部分新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17151820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com