gpt4 book ai didi

ruby-on-rails - Rails (5.2.2) AJAX 调用部分不工作

转载 作者:行者123 更新时间:2023-12-04 05:43:16 25 4
gpt4 key购买 nike

短小精悍,我已关注this guide 正是 在全新的 Rails 部署 (5.2.2) 上,使用 rails g scaffold thing 生成应用程序。

但是,在指南中的Targeted Changes 段落下完成部分_show.html.erb 之后,单击“Change below”link_to 测试时不渲染局部。我没有收到任何错误消息,Rails 告诉我一切都呈现正常,但是当我单击链接时网站上没有任何反应。

我错过了什么?


代码:

Controller /things_controller

class ThingsController < ApplicationController

def index
@things = Thing.all
end

def show
end

end

config/routes.rb

Rails.application.routes.draw do
root 'things#index'
resources :things
end

things/index.html.erb

<%# /app/views/things/index.html.erb %>
<%= link_to 'Change Below', thing_path(42), remote: true %>

<div id="target-for-change">
Now you see "ME"!
</div>

things/show.js.erb

<%# /app/views/things/show.js.erb %>
$("#target-for-change").html("<%= j render(partial: 'show') %>");

things/_show.html.erb

<%# /app/views/things/_show.html.erb %>
Now you don't!

浏览器控制台输出:

Uncaught ReferenceError: $ is not defined
at <anonymous>:1:1
at processResponse (rails-ujs.self-d109d8c5c0194c8ad60b8838b2661c5596b5c955987f7cd4045eb2fb90ca5343.js?body=1:268)
at rails-ujs.self-d109d8c5c0194c8ad60b8838b2661c5596b5c955987f7cd4045eb2fb90ca5343.js?body=1:196
at XMLHttpRequest.xhr.onreadystatechange (rails-ujs.self-d109d8c5c0194c8ad60b8838b2661c5596b5c955987f7cd4045eb2fb90ca5343.js?body=1:251)

最佳答案

如您在控制台输出中所见,“$”未定义。 '$' 是 jQuery 的通用别名,所以当您这样做时:

$("#target-for-change").html("<%= j render(partial: 'show') %>");

您是在告诉 jQuery 查找某个标识符。问题是您没有在项目中包含该库。一种方法是在您的 gemfile 中添加这一行:

gem 'jquery-rails'

然后在你的 assets/javascripts/application.js 中

//= require jquery3

关于ruby-on-rails - Rails (5.2.2) AJAX 调用部分不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54019765/

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