这是因为在使用gem时看到的命令使用的Gem安装目录gem env设置为:
<base_ruby_dir>/lib/ruby/gems/1.9.1
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么?
不应该调用该文件夹:
<base_ruby_dir>/lib/ruby/gems/1.9.x
Run Code Online (Sandbox Code Playgroud)
要么
<base_ruby_dir>/lib/ruby/gems/1.9
Run Code Online (Sandbox Code Playgroud)
或者不可能每个版本的Ruby都有一个,例如:
c:/ruby191/lib/ruby/gems/1.9.1
c:/ruby192/lib/ruby/gems/1.9.2
c:/ruby193/lib/ruby/gems/1.9.3
Run Code Online (Sandbox Code Playgroud)
我知道这不是一个关键问题,我只是想知道.
现在,我正在使用的服务器响应发回一个JSON响应,如下所示:
{"status":1}
Run Code Online (Sandbox Code Playgroud)
保存后,jeditable将实际响应{"status":1}放在页面上.无论如何要解决这个问题?
换句话说,我希望只在整个构建会话的开始和结束时调用此Target,而不是为可能构建为该会话的一部分的每个单独项目调用.
另一种方法是,当在Visual Studio中点击Build(F7)时,我想在构建的最开始和结束时调用我的自定义Target,无论构建的是什么(以及它是否成功).
这可能吗?如果没有,是否有使用MSBuild Targets的替代方法,允许我在每个Visual Studio构建的开始和结束时调用我的进程?
目前我在一个命令提示符下执行此操作
require 'win32/process'
p = Process.spawn("C:/ruby193/bin/bundle exec rails s")
puts p
Process.waitpid(p)
Run Code Online (Sandbox Code Playgroud)
然后在另一个
require 'win32/process'
Process.kill(1,<p>)
Run Code Online (Sandbox Code Playgroud)
问题是我生成的进程(在这种情况下是Rails服务器)产生了一系列子进程.kill命令不会杀死它们,只是让它们孤立而没有父级.
任何想法如何杀死整个衍生过程及其所有孩子?
我有一个非常简单的运行在Ruby 1.9.3上的Sinatra应用程序,它使用ERB和markdown模板.我已经剥离它以证明问题.
这是在Mac OS X Snow Leopard上运行Sinatra 1.3.2.对于降价我使用的是rdiscount 1.6.8.
主要的Ruby文件包含
get '/services' do
erb :services
end
Run Code Online (Sandbox Code Playgroud)
services.erb文件中包含以下内容
<%= markdown :'content/service1' %>
£
Run Code Online (Sandbox Code Playgroud)
在markdown文件中我只有一行
£
Run Code Online (Sandbox Code Playgroud)
当我运行Sinatra应用程序并加载'services'页面时,我Encoding::CompatibilityError at /services incompatible character encodings: UTF-8 and ASCII-8BIT在ERB文件的第二行(仅包含'£'的那一行)上获得了异常.
我做了很多谷歌搜索,我不能为我的生活弄清楚为什么会这样.ERB和markdown文件在我的本地磁盘上是UTF-8,但显然它们被Sinatra加载并变成字符串,我不知道如何判断这些字符串的编码.
如果我强迫Sinatra使用ASCII-8BIT(通过添加settings.default_encoding = 'ASCII-8BIT'到我的主要Sinatra Ruby文件的顶部),则不会抛出任何异常但是'£'字符出现错误.
有什么指针吗?
我有一个名为CourseRequests的控制器,它将接受"new"方法的ajax请求.
既然它会用json响应,我应该使用/course_requests/new.json吗?
我不想为这种愚蠢的json响应制作模板,我该怎么做?
respond_to做什么?(我已经看到了它的块样式,我明白了,但是非块样式呢)
它们可以像这样定义
Struct.new(:x, :y)
但是可以用它们做些什么呢?具体来说,我如何创建这样的结构的实例?这不起作用
Struct.new(:x => 1, :y => 1)
(你明白了TypeError: can't convert Hash into String)
我正在使用Ruby 1.9.2.
更新:
好的指针到目前为止,谢谢.我想我之所以这样说的原因是我有几次发现自己想要这样做
Struct.new(:x => 1, :y => 1)
这样我就可以在我可以写的地方传递一个对象,obj.x而不是实例化一个哈希并且必须写obj[:x].在这种情况下,我希望结构真的是匿名的 - 我不想通过命名从Struct.new调用返回的内容来污染我的命名空间.正如已经建议的那样,最接近的是
Struct.new(:x, :y).new(1, 1)
但你觉得苹果怎么样?我不确定.期望能够一次性定义和实例化匿名结构(作为核心Ruby的一部分)是否合理?我想当我阅读官方Ruby文档时,Struct.new我认为"匿名"一词允许这样,但事实并非如此.
我已经在github上分享了一个repo,我现在想把我的fork回滚到一个已知的提交.我可以在本地使用正确的文件
git reset --hard HEAD~1
但那又怎样?
那我怎么能提交那个版本呢?我add所有当前文件到暂存区域然后commit和push?
编辑:或者我真的需要一个分支?基本上,HEAD我最初分叉的repo使用了一些我不能依赖的新依赖项,因此我想从该repo中获取代码并在提交历史中将其全部移回X天.我希望新回滚的代码可以在github上使用,所以我可以将它作为Gem包含在我的Rails 3应用程序中.
那更好吗,有人可以告诉我该怎么做吗?
我正在寻找一种更简单的方法来创建一个小型个人网站,而不是使用Ruby on Rails(我会说我有'中级'经验).该网站将主要是从块(文章,菜单等)构建的静态页面,我希望能够使用像Markdown这样的东西来创作,以便非技术人员可以撰写文章.该网站还需要一些简单的反馈型表格.我可能不需要大量的测试.
该网站的外观非常简洁,我希望完全控制外观.我对Rails,Ruby,Javascript,HTML和CSS感到满意.
我想知道的是,我是否会通过使用Rails进行维护(包括部署)和为网站创作内容的复杂程度.我听过一些关于Sinatra的事情,引起了我的兴趣,但从未使用它 - 这会减少维护费用吗?
如果站点要求用户登录,建议是否会更改?