可能重复:
如何仅存储已更改的多个文件中的一个文件
如何保存特定文件,将当前已修改的其他文件保存在我要保存的存储区中?
例如,如果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) 我发现了一些文章解决了引擎内的助手问题,这些问题不适用于消费(父)应用程序.为了确保我们都在同一页上,让我们说我们有这个:
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
我正在将一个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'.
两个问题:
我正在运行一个使用名为'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)
这有效,但必须有一个更容易/更好/更清洁的方式来获得宝石的完整路径.任何人?
我们小组有几个人,其中任何一个人可能正在处理任何宝石组合.目前,我们的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路径,同时消除上面提到的许多痛苦.然而,它仍然是丑陋的,我想知道是否有更好的方法来做到这一点,可能使用群组?
所以我要说'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)
有谁知道这个神奇的咒语是什么?