【问题标题】:Using Javascript on Ruby on rails and editing the code在 Ruby on rails 上使用 Javascript 并编辑代码
【发布时间】:2011-07-14 15:05:46
【问题描述】:

我正在尝试修改 Javascript 中的代码。我的应用程序是用 Ruby rails 和 Javascript 编写的。它在 Heroku 中运行。我一直在修改 Notepadd++ 中的所有内容,然后保存它,将其推送到 heroku 中,然后我看到了结果。

当我想在 Javascript 中更改某些内容时,问题就来了。我一直在一个名为 quote.js 的文件中进行更改,但是当我更改某些内容时,什么也没有发生。您可以在下面看到我要更改的代码。在这种情况下,我只是想从劳动汇总表中取出一个名为 items 的列,我将其从变量 dest 中删除,然后将其放入劳动汇总中的 cmets 中。

我在这里所做的更改似乎对整个应用程序没有任何影响。我是不是修改了错误的文件?

这是在 Ruby rails 中修改 javascript 代码的正确方法吗?

谢谢。

var labour_summary = $(labour_line_items).inject({}, function(sum){
            var key = this.pieceIdentifier();
            var added = this.pieceSummary();
            if(typeof sum[key] == 'undefined') {
                // New material in summary
                sum[key] = added;
            } else {
                // Add quantity to summary
                sum[key].hours  += added.hours;
                sum[key].cost   += added.cost;
                //sum[key].item += ", " + added.item;
            }
            return sum;
        });


        var dest = this.labour_summary_table;
        $("tr:gt(0)", dest).remove();
        $.each(labour_summary, function() {
            dest.append("<tr><td>" + [$.round_two(this.hours), $.dollars(this.hourly_rate), $.dollars(this.cost)].join("</td><td>") + "</td></tr>");
        });
    },
    updateCustomSummary: function(e) {
        var custom_line_items = this.activeQuoteItems().inject([], function(is) { 
                return $.merge(is, $(this).obj().activeCustomLineItems().get()); // grab this quote items labour line items
            }).collect( function() {    
                return $(this).obj();                                       // extend the array and collect the labour line item objects
            });

        var custom_summary = $(custom_line_items).inject({}, function(sum){
            var key = this.pieceIdentifier();
            var added = this.pieceSummary();
            if(typeof sum[key] == 'undefined') {
                // New material in summary
                sum[key] = added;
            } else {
                // Add quantity to summary
                sum[key].quantity   += added.quantity;
                sum[key].cost       += added.cost;
                //sum[key].item     += ", " + added.item;
            }
            return sum;
        });

        var dest = this.custom_summary_table;
        $("tr:gt(0)", dest).remove();
        $.each(custom_summary, function() {
            dest.append("<tr><td>" + [this.customName, this.quantity, $.dollars(this.costPerPiece), $.dollars(this.cost), this.item].join("</td><td>") + "</td></tr>");
        });
    }
});

【问题讨论】:

  • Java 还是 javascript?它们根本不是一回事。
  • quote.js 是否真的包含在您的布局中?
  • 对不起。一切都是javascript。 Quote.js 在 public\javascripts\modules\ 我在布局中没有看到任何引用

标签: javascript ruby-on-rails ruby heroku


【解决方案1】:

检查您是否在尝试加载的页面上包含 javascript 文件 quote.js。(在 net 选项卡或脚本选项卡下使用 firefox 的 firebug 插件来检查文件是否已加载)。您需要在布局中包含 javascript。

【讨论】:

  • 只需在布局中包含javascript文件即可加载quote.js
  • 你好贾瓦德。似乎它正在加载一个名为 based_pa​​ckage.js 的东西,当我更改实际的 quote.js 时,这个文件似乎没有更新。如果我用notepad++编辑它,我该如何改变它?该文件的阅读和编辑非常复杂。谢谢。
  • 您需要转到您的应用程序 app/views/layouts 文件夹,并在 head 部分的 application.html.erb 文件中包含您的 quote.js。您可以通过在 head 部分添加 来做到这一点。这样,每次页面加载时,您的 js 也会被加载,您将能够在页面上看到与 javascript 相关的更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多