小编ynk*_*nkr的帖子

我怎样才能存储特定文件?

可能重复:
如何仅存储已更改的多个文件中的一个文件

如何保存特定文件,将当前已修改的其他文件保存在我要保存的存储区中?

例如,如果git status给我这个:

younker % gst      
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   app/controllers/cart_controller.php
#   modified:   app/views/cart/welcome.thtml
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

我只想藏匿app/views/cart/welcome.thtml,我该怎么做?有点像(但当然这不起作用):

git stash save welcome_cart app/views/cart/welcome.thtml
Run Code Online (Sandbox Code Playgroud)

git git-stash

1422
推荐指数
10
解决办法
57万
查看次数

Rails 3.1:在客户端应用程序中公开引擎助手的更好方法

我发现了一些文章解决了引擎内的助手问题,这些问题不适用于消费(父)应用程序.为了确保我们都在同一页上,让我们说我们有这个:

module MyEngine
  module ImportantHelper
    def some_important_helper
      ...do something important...
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

如果您查看"隔离引擎的助手"(L293)中的rails引擎文档,它会说:

  # Sometimes you may want to isolate engine, but use helpers that are defined for it.
  # If you want to share just a few specific helpers you can add them to application's
  # helpers in ApplicationController:
  #
  # class ApplicationController < ActionController::Base
  #   helper MyEngine::SharedEngineHelper
  # end
  #
  # If you want to include all of the engine's helpers, you can use #helpers …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails view-helpers helpers rails-engines ruby-on-rails-3.1

25
推荐指数
3
解决办法
9387
查看次数

ActionController :: Base.relative_url_root的替代品是什么?

我正在将一个2.x rails应用移植到rails3; 我们称之为foo-app.Foo-app是更大的rails应用程序的一部分,位于main_rails_app.com/foo-app.以前我们只是在foo-app生产配置中设置以下内容,以确保我们的foo-app路由正常工作:

ActionController::Base.relative_url_root = "/foo-app"
Run Code Online (Sandbox Code Playgroud)

但是,使用rails3,我现在得到:

DEPRECATION WARNING: ActionController::Base.relative_url_root is ineffective. Please stop using it.
Run Code Online (Sandbox Code Playgroud)

我已经将配置条目更改为以下内容:

config.action_controller.relative_url_root = "/foo-app"
Run Code Online (Sandbox Code Playgroud)

这主要是因为对外部资源(javascript/css/images)的所有调用都将使用/ foo-app.但是,我的路线没有任何改变,换句话说,foo-app root_path给我'/'当我期待'/ foo-app'.

两个问题:

  1. 什么是ActionController :: Base.relative_url_root的替代品
  2. 如果是config.action_controller.relative_url_root,那么为什么我的路由没有反映我设置的relative_url_root值?

ruby-on-rails ruby-on-rails-3

20
推荐指数
3
解决办法
2万
查看次数

我需要一个来自rails应用程序内的宝石完整路径

我正在运行一个使用名为'awesome_engine'的引擎的rails 3.1 app.Awesome_engine有一些我需要的资产,但罗盘的负载路径不包括引擎资产路径.我的理解是它应该在那里,但事实并非如此.

我需要添加它,所以我修改了我的config/compass.rb以包含指南针的additional_import_paths配置设置.问题是,这就是我获取所需gem的路径:

begin
  gem_root = $LOAD_PATH.find{|i| i.include?('/awesome_engine/')}.gsub(/awesome_engine\/.*/, 'awesome_engine/app/assets/stylesheets/scss')
  additional_import_paths = [gem_root]
rescue
end
Run Code Online (Sandbox Code Playgroud)

这有效,但必须有一个更容易/更好/更清洁的方式来获得宝石的完整路径.任何人?

ruby-on-rails bundler

10
推荐指数
1
解决办法
2954
查看次数

Gemfile:为多个开发人员有条件地声明本地或远程gems的更好方法

我们小组有几个人,其中任何一个人可能正在处理任何宝石组合.目前,我们的Gemfile有这样的东西:

gem 'awesome-gem', :git => 'git@github.com:somebody/awesome-gem.git'
# gem 'awesome-gem', :path => '/Users/developer-A/workspace/awesome-gem'

# gem 'rad-gem', :git => 'git@github.com:somebody/rad-gem.git', :branch => 'release'
gem 'rad-gem', :path => '/some/path/specific-to/developer-B/rad-gem'
Run Code Online (Sandbox Code Playgroud)

因此开发人员A在本地工作的是awesome-gem,当他们完成时,他们只是替换了他们的:路径gem:git位置并且都承诺版本控制.developer-B和C对rad-gem执行相同的操作,每个都在其本地修改的Gemfile中有一个不同的路径,如果每个Gemfile都有真正的更改,他们必须撤消它们的本地:路径设置,提交,撤消以指回到他们当地版本的rad-gem等

这既痛又难,所以我试图想出一个更好的解决方案,但我能想出的最好的是这样的:

if ENV['RADGEM_PATH']
  gem 'rad-gem', :path => ENV['RADGEM_PATH']
else
  gem 'rad-gem', :git => 'git@github.com:somebody/rad-gem.git', :branch => 'release'
end
Run Code Online (Sandbox Code Playgroud)

这允许开发人员-B和C设置他们自己的rad-gem路径,同时消除上面提到的许多痛苦.然而,它仍然是丑陋的,我想知道是否有更好的方法来做到这一点,可能使用群组?

bundler

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

我可以在另一个css定义中包含css定义吗?

所以我要说'foo.css'中有以下内容:

.border { border : solid 1px; }
#foo { color : #123; }
#bar { color : #a00; }
Run Code Online (Sandbox Code Playgroud)

现在让我们说我有两个我想要边框的div,所以我这样做:

<div id="foo" class="border">Foo</div>
<div id="bar" class="border">Bar</div>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我发现在我的css文件中定义#foo和#bar时,我宁愿给它们.border的特性而不是给div这个类,就像这样:

.border { border : solid 1px; }
#foo {
  <incantation to inherit from .border>
  color : #123;
}
#bar {
  <incantation to inherit from .border>
  color : #a00;
}
Run Code Online (Sandbox Code Playgroud)

然后我的HTML将是:

<div id="foo">Foo</div>
<div id="bar">Bar</div>
Run Code Online (Sandbox Code Playgroud)

有谁知道这个神奇的咒语是什么?

css

5
推荐指数
2
解决办法
3178
查看次数