Javascript Rails:如何使用控制器加载/触发js.erb?
我甚至不知道如何以一种可以理解的方式问这个问题 基本上,我希望在保存后使用js.erb编写一些javascript。我使用一个常规的javascript/coffee脚本文件提交表单(如果所有字段都正确填写,则提交表单,否则表单什么也不做&只显示错误) 我的咖啡剧本的一部分:Javascript Rails:如何使用控制器加载/触发js.erb?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我甚至不知道如何以一种可以理解的方式问这个问题 基本上,我希望在保存后使用js.erb编写一些javascript。我使用一个常规的javascript/coffee脚本文件提交表单(如果所有字段都正确填写,则提交表单,否则表单什么也不做&只显示错误) 我的咖啡剧本的一部分: fieldCorrectResponse: (fields, response) -> if fields == correct $('#new_mail')[0].submit()
fieldCorrectResponse: (fields, response) ->
if fields == correct
$('#new_mail')[0].submit()
else
$('#mail_error').text('error while filling out form')
我的邮件管理员:
def create
@mail = Mail.new(mail_params)
if @mail.save
#PERFORM SOME JS USING A JS.ERB
else
render :new
end
END
所以我想我真正想问的是,在控制器中如何调用js.erb
在下面为我的问题编写了解决方案。您应该能够渲染
js
并使用create.js.erb
请尝试:
# MailsController
def create
@mail = Mail.new(mail_params)
if @mail.save
respond_to do |format|
format.js
end
else
render :new
end
END
然后,在app/views/mails/create.js.erb
中实现您的javascript,“编写一些javascript”并不是非常具有描述性。您是否希望从create操作返回一个JSON对象,然后jquery上的success回调可以解析该对象?或者您希望有一个包含javascript的模板,该模板在保存操作后被调用
维诺德走了第二条路。确保路线设置正确
如果要返回可解析的JSON对象,请编写
render json: { some: 'json objects', should: 'go here' }
此外,不知道“邮件”是什么,如果您尝试发送应该使用action mailer完成的电子邮件,并且可能是将主模型提交到数据库的一部分(如果您正在创建用户并尝试发送电子邮件,则在用户创建过程中使用发送电子邮件的方法).我已经试过了,但我刚刚被重定向到
http://localhost:3000/mails
&获得一个空白屏幕。我的终端显示已完成406不可接受
。。我还应该注意,我是通过另一个视图提交表单的。嘿,斯图尔特,我正试图创建一个调用javascript int的模板(js.erb文件)。该应用程序实际上与邮件无关,只是学习rails。我调用js.erb文件通常没有问题,但是没有得到406不可接受的。。自从发布以来,我发现这是一个并不罕见的问题()。。。我也许应该开始一个新的帖子。。谢谢