小编New*_*ria的帖子

rails3资产管道和文件冲突

我正在将现有的rails 2应用更新到rails 3,并且在理解资产管道时遇到一些麻烦.我已经阅读了指南,据我了解,以下任何目录中的文件都将解析为/ assets:

  • 应用程序/资产
  • LIB /资产
  • 供应商/资产

并且您可以使用帮助程序访问它们...即

image_tag('logo.png')
Run Code Online (Sandbox Code Playgroud)

但我不明白的是如何处理碰撞?例如,如果有以下文件,该怎么办:

  • 应用程序/资产/图像/ logo.png
  • LIB /资产/图像/ logo.png

如果我去myapp.com/assets/images/logo.png,将返回哪个文件?我可以在我的应用程序中手动检查碰撞,但这在使用依赖资产管道的宝石时成为一个痛点.

ruby-on-rails-3 asset-pipeline

6
推荐指数
1
解决办法
350
查看次数

数组到连续数字范围内

我正在尝试制作一个 Ruby 函数,将唯一数字数组转换为连续数字范围。

[1, 2, 3, 5, 6, 8, 9] => [(1..3), (5..6), (8..9)]
Run Code Online (Sandbox Code Playgroud)

这似乎不太难,但我想知道是否有更好的方法。

ruby arrays algorithm

6
推荐指数
1
解决办法
1607
查看次数

Rails 3.1资产管道没有缩小

我将我的应用程序升级到rails31 ..一切正常,但我有资产管道的问题.即时通讯使用rails3.1.rc5

我的js和我的css合并但没有缩小..我使用:

RAILS_ENV=production rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

预编译资产..

我在production.rb中有这些设置

config.assets.compress = true
config.assets.js_compressor  = :uglifier
config.assets.css_compressor = :scss
Run Code Online (Sandbox Code Playgroud)

合并文件并获取名称中的md5,但它们不会缩小.

任何帮助,将不胜感激

ruby ruby-on-rails ruby-on-rails-3.1 asset-pipeline

5
推荐指数
1
解决办法
3252
查看次数

需要来自资产路径的子目录的资产文件

我正在尝试将我的应用程序升级到Rails 3.1,并且我有很多自定义Javascript文件,我正在尝试迁移到新的资产管道.

我当前(即3.1之前的)目录结构具有类似于:

public/
    foo/
        model.js
        controller.js
        etc...
Run Code Online (Sandbox Code Playgroud)

所以,我正在尝试将它们移到lib/assets/javascripts并保持foo /子目录完整(而不是制作foo_model.js,foo_controller.js等).

在我的application.js中,我试图这样做:

//= require foo/model
Run Code Online (Sandbox Code Playgroud)

//= require 'foo/model'
Run Code Online (Sandbox Code Playgroud)

但这些都行不通.Rails总是给我一个错误页面并说:

couldn't find file 'foo/model.js'
Run Code Online (Sandbox Code Playgroud)

如果它们不在子目录中,我确实测试了正确包含的东西,所以我知道这不仅仅是我的lib/assets目录不在include路径中.所以我想我只是想知道是否有办法做到这一点,或者我应该只是扁平化目录并使用foo_model.js等?

ruby-on-rails-3.1 sprockets asset-pipeline

5
推荐指数
1
解决办法
5230
查看次数

如何使用带有rails 3.1资产管道和coffeescript的dojo工具包?

我正在尝试使用dojo-toolkit作为rails 3.1 app上的JS框架,但我正在努力将dojo require结构与sprockets require和coffeescript合并.似乎dojo期望磁盘上的JS文件,但我猜它们是从coffeescript动态创建的.

想知道是否有人知道这两个要求是如何共存的.

dojo ruby-on-rails-3.1 asset-pipeline

5
推荐指数
1
解决办法
2722
查看次数

wicked_pdf + rails'资产管道+生产中的sass导入

我在开发中成功使用wicked_pdf和SASS.我包括一个单一的.scss文件,其中包含一些import其他的规则.sass.scss文件,通过这个帮手:

def wicked_pdf_stylesheet_link_tag(*sources)
  sources.collect { |source|
    "<style type='text/css'>#{Rails.application.assets.find_asset("#{source}.css").body}</style>"
  }.join("\n").gsub(/url\(['"](.+)['"]\)(.+)/,%[url("#{wicked_pdf_image_location("\\1")}")\\2]).html_safe
end
Run Code Online (Sandbox Code Playgroud)

但是切换到生产应用程序仍然会查找未找到的导入文件.

我已经添加了第二个清单文件,要在production.rb(config.assets.precompile += %w(pdf.css))中进行预编译,其中包含一个require用于获取上述.scss文件的规则.这个文件编译得很好,但似乎帮助程序没有在生产中选择正确的文件,仍然看起来加载导入的.sass文件.

有谁有经验如何解决这个问题?PDF创建需要绝对路径,这使得此任务更加困难.

production sass ruby-on-rails-3.1 asset-pipeline wicked-pdf

5
推荐指数
1
解决办法
4973
查看次数

如何使用method_missing动态声明方法?

我有一个ruby程序,我想接受用户的编写方法,并用该名称创建一个新方法.我试过这个:

def method_missing(meth,*args,&block)
  name = meth.to_s
  class << self
    define_method(name) do
      puts "hello " + name
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

`define_method': interning empty string (ArgumentError) in 'method_missing'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

编辑:

我让它以不同的方式工作,但我仍然很好奇如何以这种方式做到这一点.这是我的代码:

def method_missing(meth,*args,&block)
  Adder.class_eval do
    define_method(meth) do
      puts "hello " + meth
    end
  end
  send("#{meth}")
end
Run Code Online (Sandbox Code Playgroud)

ruby closures metaprogramming

5
推荐指数
1
解决办法
3727
查看次数

.NET Core 和 Entity Framework Core 中的数据库优先与身份验证

我想使用数据库优先方法通过 EF Core 管理我的数据库,而不仅仅是初始数据库创建。我使用此命令生成实体模型和映射代码:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=MyDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models/Entities -f
Run Code Online (Sandbox Code Playgroud)

现在这工作正常。我只是在身份整合方面苦苦挣扎。目前我有两个独立的上下文,一个是由脚手架命令生成的,另一个是身份上下文,如下所示:

public class IdentityContext : IdentityDbContext<ApplicationUser> {
    public IdentityContext(DbContextOptions<IdentityContext> options)
        : base(options) {
    }

    protected override void OnModelCreating(ModelBuilder builder) {
        base.OnModelCreating(builder);
        // Customize the ASP.NET Identity model and override the defaults if needed.
        // For example, you can rename the ASP.NET Identity table names and more.
        // Add your customizations after calling base.OnModelCreating(builder);
    }
}
Run Code Online (Sandbox Code Playgroud)

两个上下文都从同一个数据库读取并注册如下:

services.AddDbContext<ApplicationContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddDbContext<IdentityContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Run Code Online (Sandbox Code Playgroud)

有两个独立的上下文是否合理?当我开始在用户和其他模型之间创建关系时,它会导致未来出现问题吗?我在文档中找不到有关继续使用db-scaffold来生成实体模型和映射的任何内容。

如果我能澄清任何事情,请告诉我。


原始背景

好吧,很明显我原来的问题没有任何好处。

我只是想澄清一下我使用 .NET …

entity-framework asp.net-identity entity-framework-core asp.net-core

5
推荐指数
0
解决办法
2548
查看次数

为什么在Vim中这个正则表达式不能在SublimeText中工作?

我有这个正则表达式

^\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\)$
Run Code Online (Sandbox Code Playgroud)

这应该匹配

  1. 行的开头
  2. 捕获所有字母直到Tab
  3. 捕获所有字母直到Tab
  4. 捕获所有字母直到Tab
  5. EOL

在Vim中,这很好用: 正确的正则表达式捕获

但在Sublime中它不会匹配.为什么?

regex sublimetext3

5
推荐指数
1
解决办法
116
查看次数

Nodejs 是否为您提供了查看它可以使用的所有环境变量的方法?

当我开始使用现有的应用程序/代码库时,我经常对它要使用的环境变量感到困惑。人们会写出糟糕的文档,而我讨厌在应用程序开发的这一部分中寻找和迷失方向。

有没有办法查看它可以使用的所有环境变量?就像一个npm run...静态列出所有这些的任务?

static-analysis environment-variables node.js

5
推荐指数
1
解决办法
6387
查看次数