小编Ben*_*Ben的帖子

为什么我们将Ruby 1.9.2/1.9.3 gems安装到1.9.1文件夹中?

这是因为在使用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)

我知道这不是一个关键问题,我只是想知道.

ruby rubygems

21
推荐指数
1
解决办法
5899
查看次数

JEdi​​table,如何处理JSON响应?

现在,我正在使用的服务器响应发回一个JSON响应,如下所示:

{"status":1}
Run Code Online (Sandbox Code Playgroud)

保存后,jeditable将实际响应{"status":1}放在页面上.无论如何要解决这个问题?

javascript jquery jeditable

15
推荐指数
3
解决办法
8075
查看次数

如何在msbuild.exe启动和结束时调用我的MSBuild目标

换句话说,我希望只在整个构建会话的开始和结束时调用此Target,而不是为可能构建为该会话的一部分的每个单独项目调用.

另一种方法是,当在Visual Studio中点击Build(F7)时,我想在构建的最开始和结束时调用我的自定义Target,无论构建的是什么(以及它是否成功).

这可能吗?如果没有,是否有使用MSBuild Targets的替代方法,允许我在每个Visual Studio构建的开始和结束时调用我的进程?

msbuild visual-studio visual-studio-2012

9
推荐指数
1
解决办法
4286
查看次数

在Windows上的Ruby中杀死进程和子进程

目前我在一个命令提示符下执行此操作

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 windows win32-process

7
推荐指数
1
解决办法
5491
查看次数

简单的Sinatra应用程序中不兼容的字符编码

我有一个非常简单的运行在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文件的顶部),则不会抛出任何异常但是'£'字符出现错误.

有什么指针吗?

ruby character-encoding sinatra

7
推荐指数
1
解决办法
3218
查看次数

New To Rails 3,带有json响应的ajax请求

我有一个名为CourseRequests的控制器,它将接受"new"方法的ajax请求.

  1. 既然它会用json响应,我应该使用/course_requests/new.json吗?

  2. 我不想为这种愚蠢的json响应制作模板,我该怎么做?

  3. respond_to做什么?(我已经看到了它的块样式,我明白了,但是非块样式呢)

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

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

Ruby中匿名结构的目的是什么?

它们可以像这样定义

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我认为"匿名"一词允许这样,但事实并非如此.

ruby

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

将我的github fork回滚到之前的提交

我已经在github上分享了一个repo,我现在想把我的fork回滚到一个已知的提交.我可以在本地使用正确的文件

git reset --hard HEAD~1

但那又怎样?

那我怎么能提交那个版本呢?我add所有当前文件到暂存区域然后commitpush

编辑:或者我真的需要一个分支?基本上,HEAD我最初分叉的repo使用了一些我不能依赖的新依赖项,因此我想从该repo中获取代码并在提交历史中将其全部移回X天.我希望新回滚的代码可以在github上使用,所以我可以将它作为Gem包含在我的Rails 3应用程序中.

那更好吗,有人可以告诉我该怎么做吗?

git github

2
推荐指数
1
解决办法
5019
查看次数

对于一个主要是静态页面和一些表单的网站,Rails是否足够轻松?

我正在寻找一种更简单的方法来创建一个小型个人网站,而不是使用Ruby on Rails(我会说我有'中级'经验).该网站将主要是从块(文章,菜单等)构建的静态页面,我希望能够使用像Markdown这样的东西来创作,以便非技术人员可以撰写文章.该网站还需要一些简单的反馈型表格.我可能不需要大量的测试.

该网站的外观非常简洁,我希望完全控制外观.我对Rails,Ruby,Javascript,HTML和CSS感到满意.

我想知道的是,我是否会通过使用Rails进行维护(包括部署)和为网站创作内容的复杂程度.我听过一些关于Sinatra的事情,引起了我的兴趣,但从未使用它 - 这会减少维护费用吗?

如果站点要求用户登录,建议是否会更改?

html ruby-on-rails sinatra

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