Javascript Rails:如何使用控制器加载/触发js.erb?

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()

我甚至不知道如何以一种可以理解的方式问这个问题

基本上,我希望在保存后使用js.erb编写一些javascript。我使用一个常规的javascript/coffee脚本文件提交表单(如果所有字段都正确填写,则提交表单,否则表单什么也不做&只显示错误)

我的咖啡剧本的一部分:

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不可接受的
。。自从发布以来,我发现这是一个并不罕见的问题()。。。我也许应该开始一个新的帖子。。谢谢