ruby-on-rails - 使用 'paperclip' gem 和 Ruby on Rails 3 时出现问题

标签 ruby-on-rails ruby ruby-on-rails-3 paperclip

我在运行“Snow Leopard”v1.6.5 的 MacO 上使用 Ruby on Rails 3。

我想使用“回形针”gem,所以我将它包含在我的 Gemfile 中,如下所示:

gem 'paperclip', "~> 2.3"

然后,在终端中运行命令:

sudo bundle install

结果是:

...
Using paperclip (2.3.8) 
Using thor (0.14.6) 
Using railties (3.0.1) 
...
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

这意味着“paperclip v2.3.8”已安装。

然后我从“系统偏好设置/共享/面板”重新启动“apache”

使用我的 RoR 应用程序并在网站中本地导航,我意识到出了点问题。因此,查看“控制台消息”中的日志,我发现了以下内容:

18/01/2011 16:50:52 org.apache.httpd[12972] [31mCould not find paperclip-2.3.8 in any of the sources[0m

什么意思?如何解决问题?


更新(重要!!!!)

我正确地重新安装了 RVM,现在,运行命令“rvm”,我让它工作了......但是“回形针”还没有:在日志中我仍然有问题'Could not find paperclip-2.3.8 in any of the sources '.

注意:这次我用了bundle install而不是 sudo bundle install !

我发现在终端中运行命令“rails server”时,我的 RoR3 应用程序与 URL http://0.0.0.0:3000 上的“回形针”配合得很好.当我在 URL http://project.local 上使用来自“Snow Leopard”的 apache 基本安装时,它不会. 为什么会这样?!


编辑(在回答请求后)

rvm info 的输出是:

/usr/local/bin/rvm: line 73: /Users/<my_user_name>/.rvm/scripts/rvm: No such file or directory
...
<A lot of the same line>
...
/usr/local/bin/rvm: line 73: /Users/<my_user_name>/.rvm/scripts/rvm: No such file or directory
/usr/local/bin/rvm: fork: Resource temporarily unavailable
/usr/local/bin/rvm: fork: Resource temporarily unavailable

附言我:我尝试使用 gem 'paperclip', '2.3.8'而不是 gem 'paperclip', "~> 2.3" , 但它不起作用。

附言II:我也在使用 MacPorts 并且安装了 Image-Magick

最佳答案

I get: "/usr/local/bin/rvm: line 73: /Users//.rvm/scripts/rvm

嗯,这很有趣。你不应该在 /usr/local/bin 中看到 rvm,所以有些地方搞砸了。 请通过编辑将 rvm info 的输出添加到您的问题中。

除非你有非常特殊的需求,而且,如果你知道的话,因为你要为多个用户管理一个主机,你不应该将 sudo 与 rvm 或受 rvm 控制的一起使用 gem 。由 sudo 或在安装 rvm 时以 root 身份运行导致的混合权限将导致各种奇怪的行为。

如果您有混合/多个 rvm 版本,那么第一项工作就是清理老鼠的巢穴并将一切恢复到干净/稳定的状态。

然后,您可以安装当前版本的 rvm,并让它安装您的 Rubies。此外,使用 rvm get head 使 rvm 保持最新非常重要。作者每周更新几次,更新是透明的,但会添加错误修复和新功能。


编辑:rvm info 显示“bad brokage”。

除了~/.rvm 路径之外,我们还需要弄清楚rvm 的安装位置。在命令行输入:

locate rvm | grep -v /Users

特别是我们正在寻找 rvm shell 脚本的任何实例。例如,这是我为帮助 TextMate 使用 rvm 而安装的第二个版本:

/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby on Rails.tmbundle/Support/lib/rvm

注意它只是行尾的单词“rvm”。


编辑:“我创立了:”

好的,这是个好消息。 RVM 被设计为在一个目录中工作。您可以运行几个命令来清理 /usr/local 路径:

下一部分将删除文件和目录,因此需要小心完成。如果您习惯于从命令行工作并且了解典型的系统管理,那么您可以按原样执行这些操作:

sudo rm /_rvm
sudo rm /usr/bin/rvm-install
sudo rm /usr/local/bin/rvm-prompt
sudo rm /usr/local/bin/rvm-shell
sudo rm /usr/local/bin/rvmsudo 

sudo rm /usr/local/bin/rvm

sudo rm -rf /usr/local/rvm/

如果您想更加谨慎,可以打开一个 Finder 窗口,然后执行 CMD+SHFT+G 打开“转到文件夹”对话框。复制并粘贴上面命令行中的第一个 PATH,然后按回车键。 Finder 将跳转到该目录。查找该文件 (_rvm)。将其拖到垃圾箱。系统应提示您输入 sudo 密码。重复每个命令。这很好用,因为它让 Finder 使用它的一些智能来帮助保护您免受我的愚蠢错误的影响。 :-)

删除这些东西后,您的机器应该得到部分清理。从命令行键入 echo $PATH 并查看是否列出了这些路径中的任何一个。如果是这样,请打开您的 ~/.bashrc~/.bash_profile,找到修改 PATH 环境变量的位置,然后删除该目录路径。

然后,键入 ls -al ~/.rvm。如果您的家中有一个 .rvm 文件夹,那么您可以使用 rm -rf ~/.rvm 删除它。之后,检查您的 .bashrc 或 .bash_profile 是否有任何未指向 ~/.rvm/Users/your_account_name/.rvm 的 rvm。删除那些,关闭终端窗口,然后重新打开它。

此时 rvm 应该从您的机器中删除。

这里已经很晚了,我整个周末都在生病,所以我们明天会重新安装 RVM 和您的 Rubies,或者,如果您有信心,请自己尝试一下。请记住,您不必必须使用 sudo 来安装 RVM。它应该毫无怨言地安装到您的主目录中。

此外,我认为我们还没有确定您正在运行的操作系统或 XCode 的版本。你可能想要 download Apple's most recent version of XCode从他们的网站为您的操作系统。 DVD 上 Snow Leopard 附带的版本有一些错误,应尽快升级。如果您没有开发者帐户,请创建一个。它们是免费的。

关于ruby-on-rails - 使用 'paperclip' gem 和 Ruby on Rails 3 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4719851/

相关文章:

ruby-on-rails - Rails 事件记录 : query for record by a datetime field?

ruby-on-rails-3 - 如何在 Heroku 上自动缩放网络测功机?

jquery - 如何访问通过 AJAX 请求发布的 Ruby on Rails Controller 中的数据?

ruby - 给定n,在ruby中如何求出n为1、3、4之和的不同写法的个数?

ruby-on-rails - ActiveRecord 序列化不能与哈希列一起正常工作

ruby-on-rails - 由于缺少扩展名 : openssl, readline、zlib 编译错误,Ruby 安装中止

ruby-on-rails - 如何在导出到 CSV 的 Ruby 方法中重构嵌套循环?

ruby-on-rails-3 - 如果关联存在,如何禁止删除

mysql - 如何创建一个 capistrano 任务来下载最新的 database_backup.tgz 并在本地导入?

ruby-on-rails - rails : Adding to model after user submits form