Rails Acts_as_votable Gem Like/Unlike Buttons with Ajax
我是Ruby在Rails上的新手,我使用ACTS_AS_VOTABLE GEM创建类似和不同的按钮来使用户像和帖子一样,但我无法使他们从喜欢的(和Viceversa)更改并更新计数器并更新计数器每次点击而无需刷新页面.我尝试按照其他类似的答案进行操作,但我没有运气. 没有我尝试实现Ajax的凌乱更改,我的代码看起来像这样: POST MODED ACTS_AS_VOTABLE和用户模型ACTS_AS选民 帖子控制器具有 def like @post = Post.find(params[:id]) @post.liked_by current_user redirect_to :back end def unlike @post = Post.find(params[:id]) @post.unliked_by current_user redirect_to :back end 路线有 resources :posts do m
14 2024-04-05
编程技术问答社区
当使用`bundle gem floob`时,为什么会创建一个与gem同名的目录?
我正在制作我的第一个宝石.假设它称为floob.例如:bundle gem floob 为什么bundle gem为宝石创建两个相同名称的目录?例如:/floob/lib/floob/ 我是否将大部分代码放在/lib/floob/中(与version.rb文件一起?) 用宝石名称创建的文件的目的是什么? 例如:/floob/lib/floob.rb 唯一的命令运行是bundle gem. 我想澄清所有floobs〜 之间的关系 解决方案 这种"两层"结构的原因是因为/floob/lib最终将是添加到Ruby require负载路径的文件夹. 这样,如果将floob.rb放入/floob/lib中,则可以加载它: require 'floob' 这也有机会通过将它们放入/floob/lib/floob中,将子组件(例如version.rb)分开,例如version.rb.这意味着您现在可以做以下事情: require 'floob
14 2024-04-05
编程技术问答社区
捆绑程序找不到一个我可以用gem install安装的宝石。
我正在并排开发两个宝石,一个包含一些纯红宝的功能,一个带有导轨的接口. Rails Gem(卢旺达式)依赖于.gemspec中的spec.add_runtime_dependency "rwanda" "~> 0.6.0"纯红宝宝石(卢旺达).但是,由于某种原因,Bundler找不到这个新版本 - 尽管我可以使用gem install: 安装它 15:40 slack@kevin:~/rails/rwanda-rails[master]$ gem install rwanda Successfully installed rwanda-0.6.0 Parsing documentation for rwanda-0.6.0 Done installing documentation for rwanda after 0 seconds 1 gem installed 15:48 slack@kevin:~/rails/rwanda-rails[master]$ bundle i
24 2024-04-05
编程技术问答社区
在Rails Docker容器中捆绑安装失败
我在部署Docker容器时遇到问题,这主要是由于bundler无法执行其install命令.使用passenger本地运行bundle install似乎可以正常工作,只有部署过程在设置宝石时会引起问题. 我对Docker是相对较新的,我不会称自己为Rails专家.也就是说,我很难理解bundler如何以这种方式设法弄乱了整个事情(尤其是与Docker结合在一起). 如果这有任何相关性,我正在使用乘客docker base图像. 这是我的Gemfile: gem 'doorkeeper' gem 'doorkeeper-jwt' gem 'aws-sdk-rails' gem 'rack-cors', :require => 'rack/cors' gem 'active_model_serializers', github: 'rails-api/active_model_serializers' gem 'passenger' gem 'rails', '4.
26 2024-04-05
编程技术问答社区
捆绑安装的结果是 "在这种情况下不允许映射值 "的错误
我有一个Rails 4项目,该项目已经工作了一段时间.我试图安装taps,但收到了一个错误消息: $ gem install taps /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:370:in `parse': (): mapping values are not allowed in this context at line 2 column 29 (Psych::SyntaxError) from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:370:in `parse_stream' from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:318:in `parse' from /usr/local/rvm/rubies/ruby
18 2024-04-05
编程技术问答社区
捆绑安装选定的组到自定义路径
作为后续的 bundledle bundle bundle bundled bundled bunshore 使用--without选项的黑名单的解决方案,例如: group :runtime do gem 'rails' ... end group :runtime_unpackaged do gem 'less2sass' end 可以使用命令: 安装runtime_unpackaged bundle --path vendor/bundle --without runtime runtime组是通过Debian软件包安装的,因为应用程序本身被包装为.deb软件包. 但是,该应用程序将不再处理group runtime的所有其他宝石,因为此命令将创建一个文件.bundle/config将它们过滤出来. 换句话说,我想使用系统中的宝石 - Debian Jessie软件包 - (组runtime)以及在本地安装的GEM(组runtime_unp
16 2024-04-05
编程技术问答社区
Rubygems:指定对最新版本的gem的依赖性
我正在开发一个依赖另一个宝石的宝石A.我需要宝石的用户具有最新版本的B.所以我想在我的宝石中说 之类的东西 spec.add_dependency "B", :latest 的原因是B包含一个需要在其最新版本中的数据库驱动程序,否则数据库拒绝了连接. 所以换句话说,我需要在使用宝石之前强制gem update.有什么方法在Gemspec中做到这一点? 我知道我可以指定版本比一些固定版本更大或更小,但这不是我想要的. 我也可以从git中获取GEM代码 - 但是从主分支中获取它通常与将最新的"稳定"版本推向RubyGems并不相同. 解决方案 这样的事情怎么样: require 'json' require 'uri' require 'open-uri' nokogiri_uri = URI('https://rubygems.org/api/v1/gems/nokogiri.json') version = nil open(nokogiri
24 2024-04-05
编程技术问答社区
在Ruby on Rails中,在 "gem install <gem_name>"之后,如何使其扩展Array,或使用其类方法?
摘要:i gem install 之后,如何使其扩展Array宝石可以做的? 详细信息: 我看到了"自然语言排序"的宝石,这是 http://rubygems.org/gemss.org/gems/naturalsort http://naturalsort.rubyforge.org/ 所以我使用的是Ruby 1.9.2和Rails 3.0.6,然后添加了行 gem 'naturalsort' 进入Gemfile,然后执行A bundle install并重新启动服务器,但是现在,由于某种原因,我仍然无法做 NaturalSort::naturalsort ['a', 'b', 'c', 'd', 'A', 'B', 'C', 'D'] 在我的助手文件中?怎么办? 另外,只能扩展数组,以便可以通过arr.natural_sort来完成,但是我必须添加行 require 'natural_sort_kernel'
20 2024-04-05
编程技术问答社区
只对选定的宝石进行捆绑部署
我只想为系统未提供的一组宝石运行bundle --deployment.我已经尝试使用--with=group,但是它开始为Gemfile 中的所有宝石做. 解决方案 bundler的--with选项的工作原理与您的期望有所不同.让我们首先看一下 --without= 将宝石引用到的小组的空间分离列表 在安装过程中跳过.如果给出了一个在 记住给出的群体清单 - 并从中删除 列表.这是一个记住的选项. --with= 参考要安装宝石的小组的空间分隔列表.如果给出了可选组,则安装它.如果一个小组是 鉴于那是在给出的群体列表中 - 没有 - 从该列表中删除.这是一个记住的选项. 重要的是要注意,--with是不是--without的倒数(尽管A --with group die 取消了先前记录的--without组,反之亦然),它支持一个完全不同的功能(一个重要的是,--with实现 不排除默认组或未指定的任何其他组的宝石. . 因此
12 2024-04-05
编程技术问答社区
Rails失败和奇怪的捆绑安装
有一件事我不知道. 当我尝试运行rails时,它说了类似: Could not find sprockets-2.1.2 in any of the sources Run `bundle install` to install missing gems. 通过sprockets-2.1.2安装了 . (我已经成功运行bundle install) ,据我了解,当我运行rails时,全局箱正在运行,因此我无法访问 bundler 安装的本地宝石. 我可以以某种方式解决这个问题,而不必手动安装很多宝石,例如: gem install what -v which? 我已经试图以 运行导轨 bundle exec rails … 我没有运气:( 我正在使用RVM(如果这可以是问题的来源 解决方案 我非常抱歉. RVM确实存在一些问题.可能是因为它是由 Jewelrybox (OS X RVM GUI)自动安装的.从终端重新安装后,一
20 2024-04-05
编程技术问答社区
捆绑程序。"无法在任何来源中找到bson-1.4.0"
我正在尝试做一个bundle install,但我会遇到错误 Could not find bson-1.4.0 in any of the sources. 我相信BSON-1.4.0是我的gemfile中的杂种〜> 2.0的要求. 当我尝试gem install -v 1.4.0 bson时,我会得到错误 ERROR: Could not find a valid gem 'bson' (= 1.4.0), here is why: Found bson (1.4.0), but was for platform jruby 捆绑式安装在我的开发计算机(运行OSX 10.6.8)上正常工作,但是我在64位Amazon EC2实例上遇到了这个问题. 如果我尝试请求较早的版本,然后执行bundle update,我会得到错误 Could not find gem 'bson (= 1.4.0) x86-mingw32', which is
18 2024-04-05
编程技术问答社区
在Gemfile中设置环境,以便根据自定义文件进行捆绑安装/更新
嗨,所有人 我构建了一个Sinatra应用程序,这是捆绑的主要文件,如以下内容, 环境.rb require 'sinatra' require 'sequel' ENV['RACK_ENV'] = 'development' configure :production do #do something end configure :development, :test do #do something end gemfile gem 'sinatra' gem 'sequel' gem 'pg', :group => :production gem 'sqlite3', :group => [:development, :test] 因此,如何在我的环境中基于Env ['rack_env']的捆绑包安装.rb文件. 解决方案 进行捆绑器要求时,您可以指定需要哪些组. 例如: require 'rubygems'
18 2024-04-05
编程技术问答社区
为什么bundler看不到自定义的gem源?
首先是我在防火墙后面/a> $ bundle install rails bundle install requires at least 0 argument: "bundle install". git@gitdev $ bundle install Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Resolving dependencies... Using rake (10.0.4) Gem::RemoteFetcher::FetchError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A (https://s3.amazonaws.com/production.s3.rubygems.org
18 2024-04-05
编程技术问答社区
RVM和Passenger。没有这样的文件给load-bundler
我已经看到了其他类似的错误,但是这些解决方案都对我有用: 在Snow Leopard上,我将RVM与基于项目的Gemsets使用.我有Rails 2和Rails 3个应用程序.当我将Bundler与Rails 2或Rails 3一起使用时,我会得到: no such file to load -- bundler 在我的Rails 2应用程序中不使用Bundler的应用程序,我只会收到一条消息,即在它时需要安装导轨. 我的RVM安装具有REE版本Ruby的全局宝石. $ rvm list rvm rubies => ree-1.8.7-2011.03 [ x86_64 ] ruby-1.8.7-p174 [ x86_64 ] ruby-1.9.2-head [ x86_64 ] $ rvm gemset list gemsets for ree-1.8.7-2011.03 (found in /Users/dwayne/.rvm/gems/
34 2024-04-05
编程技术问答社区
用bundler构建pry插件(gem)。
在这里 pry的插件需要撬 - 前缀. 我尝试使用Bundler建造: bundle gem pry-name ,但它弄乱了目录层次结构(创建2而不是1个目录): create pry-name/pry-name.gemspec create pry-name/lib/pry/name.rb create pry-name/lib/pry/name/version.rb 在Gemspec中使用错误的目录结构: require 'pry/name/version' 在同一文件中,它运行此git命令: spec.files = `git ls-files`.split($/) 给出与上述错误的文件结构相同的 是否有方法可以 tell bundler识别" - "为有效的文件名字符,而不是"/"(目录saparator)? 解决方案 bundle gem根据 解决方案 bundle gem ht
16 2024-04-05
编程技术问答社区
用Rbenv更新ruby版本,但宝石显然没有更新
我刚刚在Ubuntu Production Server上使用了 1.9.3-P448 的版本 1.9.3-p448 .更新似乎是成功的. Ruby版本显示了我刚刚更新的最新版本. 但是,当我在目录下查看此版本的宝石 1.9.3-p484 时: .rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems. 我只在该目录中找到一些宝石.当我查看上一个版本的目录时,那里有很多宝石.我是否错过了Ruby更新过程中某个地方的一步? 现在我正在使用新的Ruby版本,我是否需要重新安装此版本的所有宝石?如果是这样,运行bundle install作业会吗? 解决方案 是的,您需要为Active Ruby版本运行bundle install.请确保正确设置了Active Ruby版本和应用程序的GEMSET.只需执行以下操作(在 linux/macos 中): $ cat .ruby-version ruby-1.9.3-p4
32 2024-04-05
编程技术问答社区
我如何用Bundler开发两个宝石?
我正在开发两个宝石,让我们称它们为foo和bar. Foo也对栏也有运行时的依赖性.我正在用捆绑者开发这两个宝石. 如何将bar指定为FOO的依赖性并让Bundler解决对本地路径的依赖,而不会污染我的Gemfile?目前,我看到的唯一方法是将gem "bar", path: "path/to/bar"放在foo的gemfile中,一旦bar放在rubygems上,就将其删除,但是这种解决方案显然不令人满意,因为它会在任何人的机器上损坏其他机器. 解决方案 尚不清楚依赖关系是runtime或compile time. 您是否尝试使用本地.gem文件安装bar?一旦安装在GEM_HOME中,您的foo gem应该检测到 cd /path/to/bar rake install 然后 cd /path/to/foo rake build 其他解决方案 您可以将依赖项指定为git分支,然后在此处使用指令将其映射到本地路径: http://ryanbigg.
8 2024-04-05
编程技术问答社区
在我的gem中使用bundler
我想在我写的宝石里使用bundler.我有gemfile,在my_gem_file.rb中我有 require 'rubygems' require 'bundler' Bundler.setup Bundler.require(:default) 但是,当我构建和安装宝石时,我会得到异常bundler :: gemfilenotfound:无法找到Gemfile.是否有任何解决方案用于在宝石内使用Bundler? 解决方案 Bundler不适合根据宝石来源的宝石管理.在宝石内,只需需要您需要的库即可. 其他解决方案 由于您的宝石已在其.gemspec中指定其依赖项,因此您可以假设它们将在运行时可用.不要涉及捆绑者. 但是,您仍然可以利用Bundler来开发您的宝石.如果您使用此gemfile: source :rubygems gemspec bundler将在您的.gemspec中查看,以确定运行捆绑包安装时要安装的宝石.您可以在此处阅读更多
10 2024-04-05
编程技术问答社区
如何告诉Bundler使用全系统安装的宝石(生产部署)?
在使用Capistrano部署Rails应用程序时,我希望Bundler仅在无法找到已安装的GEM System Worker Antery Antery Antery Antery Antery时,才能将GEMS安装到shared/bundles dir.我该怎么做? 例如,如果我已经在系统上安装了pg GEM v 0.14,我希望Bundler使用它,而不是在我的应用程序的shared/bundles dir中构建和安装新的. 我正在使用Ubuntu Server,并为多个用户安装RVM. 解决方案 bundler允许使用共享(RubyGems)和 vendored (bundler)Gems,默认情况下bundler/capistrano配置为: set :bundle_flags, "--deployment --quiet" 哪些仅强制供应宝石, 您可以用显式切换回共享的宝石: set :bundle_flags, "--system
16 2024-04-05
编程技术问答社区
如何在RubyMine中运行'gem install bundler'?
我在我的红宝石IDE中更新红宝石时遇到了麻烦. 我收到一个错误报告,我需要运行gem bundle install,但是我在IDE中没有找到该命令的位置. 我已经在我的Ubuntu控制台中运行它,一切正常,但是我在IDE中找不到可以用来运行命令和更新该环境的控制台.我认为有一个简单的解决方案,但是Google在找到它方面没有太大帮助. 任何帮助都将不胜感激. 解决方案 Rubymine 18.1 及以上, double-Press ctrl 将打开运行任何东西对话框.在其中,键入您要运行的命令(在您的情况下," gem install bundler'),然后按Enter.接下来,它将要求通过任何额外的论点,然后在Rubymine中执行命令.
16 2024-04-05
编程技术问答社区