首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4在尝试使用AJAX时以纯文本形式加载JS。

Rails 4在尝试使用AJAX时以纯文本形式加载JS。
EN

Stack Overflow用户
提问于 2015-07-12 18:17:15
回答 2查看 972关注 0票数 1

我正在尝试创建一个包含两列的简单页面。在左边的列中,用户可以填写表单。在表单submit上,我希望右边的列刷新(通过AJAX),并使用控制器中创建的@url字符串填充div。现在,表单提交根本不触发我的.js页面上的代码,而是从页面重定向,并在浏览器中以纯文本的形式加载.js。这应该很简单--我做错什么了?

在配置/路由中:

代码语言:javascript
复制
    root 'home#home'
    post '/pixify', to: 'home#pixify', as: "pixify",  format: 'js'

在HomeController中:

代码语言:javascript
复制
    class HomeController < ApplicationController
      respond_to :html, :js
      skip_before_action :verify_authenticity_token

      def home
      end

      def pixify
        @url = "http://example-url.com"
        respond_to do |format|
          format.js { render :layout => false }
        end
      end
    end

载于views/home/home..html.haml:

代码语言:javascript
复制
   %div#container
     %div.left-column
       = form_tag pixify_path, :remote => true do
         %fieldset
            %ul
                %li
                    %label{:for => "url-id"} URL ID:  
                    %input{:type => "text", :name => "url-id"}

            %input{:type => "submit", :value => "Generate url", :class => "button"}

     %div.right-column
       %div#generated-url

在views/home/spinify.js.erb中:

代码语言:javascript
复制
    console.log("This is working");   // but it isn't
    $('#generated-url').html('http://www.justanexample.com');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-12 19:56:19

我明白了!This answer让我走上了正确的道路。由于jquery_ujs中的javascript标记,application.html.erb无法正常工作。原来我需要改变这一点:

<%= javascript_include_tag :defaults %>

对此:

<%= javascript_include_tag 'application' %>

在排除单独的模板问题时,我更改了该行,并忘记将其切换回来。我还从控制器中删除了render语句(per @VenkatCh的回答-谢谢!),现在一切都很好。

respond_to do |format| format.js end

票数 0
EN

Stack Overflow用户

发布于 2015-10-06 09:27:50

如果您的js.erb文件中没有包含jquery_ujs库,则application.js文件呈现为文本:

代码语言:javascript
复制
//= require jquery
//= require jquery_ujs

我打赌这就是“默认”和“应用程序”文件之间的区别所在。

您需要在您的宝石文件中使用以下宝石:

代码语言:javascript
复制
gem 'jquery-rails'
gem 'jquery-ui-rails'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31371029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档