gpt4 book ai didi

ruby-on-rails - Rails 3.0.10 AJAX 问题,create.js.erb 文件

转载 作者:行者123 更新时间:2023-12-01 01:27:51 25 4
gpt4 key购买 nike

我是网络开发新手,所以请记住这一点。

我正在使用 Rails 3.0.10 创建我的第一个应用程序

我有一个微帖子表单,我正在尝试在其中实现 AJAX。

我已经正确设置了 Controller (我相信),并将 :remote => true 添加到微帖子表单中。

Microposts Controller

def create
@user = User.find(current_user.id)
@micropost = current_user.microposts.build(params[:micropost])
if @micropost.save
flash[:success] = "Created micropost"
respond_to do |format|
format.html { redirect_to @user }
format.js
end
else
render 'users/show'
end
end

问题出在views/microposts 中的create.js.erb 文件中

作为测试,如果我输入

$("#microposts").html("<p>Hello world!</p>")

它按预期工作。

即使我使用实例变量将 ruby​​ 代码嵌入其中,也可以正常工作。

但是,如果我放

$("#microposts").html("<%= render @microposts %> ")

它什么也没做。

事实上,一旦我尝试任何 Rails 方法,它就什么也做不了。

这些是我的 javascript 文件:

/javascripts/jquery.js
/javascripts/jquery_ujs.js
/javascripts/jquery.min.js
/javascripts/application.js

任何帮助将不胜感激,我已经被难住了一段时间了。

最佳答案

您没有在创建操作中加载@microposts(集合)。

因此,您需要通过以下方式设置它:

@microposts = current_user.microposts

但是确实没有必要再进行一次数据库调用。我建议仅将新项目附加(或前置)#microposts 元素。类似于:

$("#microposts").prepend("<%= escape_javascript(render '_micrpost_item') %>");

该部分应该能够使用创建操作中的 @micropost 对象。

关于ruby-on-rails - Rails 3.0.10 AJAX 问题,create.js.erb 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457214/

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