Articles of ruby on rails 4

Eventmachine start_tcp_server没有接受者 – 端口正在使用或需要root权限(RuntimeError)

我现在无法运行我的本地服务器3天了。 重新启动计算机没有帮助。 有几次,经过反复尝试大约40-50次,它随机工作 – 我无法弄清楚为什么。 我尝试了一次不同的端口,但是从那以后,没有端口工作。 每次我尝试运行我的rails服务器时都会得到这个。 /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:526:in `start_tcp_server’: no acceptor (port is in use or requires root privileges) (RuntimeError) from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:526:in `start_server’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/backends/tcp_server.rb:16:in `connect’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/backends/base.rb:55:in `block in start’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:187:in `call’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:187:in `run_machine’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:187:in `run’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/backends/base.rb:63:in `start’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/server.rb:159:in `start’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/rack-1.6.1/lib/rack/handler/thin.rb:19:in `run’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/rack-1.6.1/lib/rack/server.rb:286:in `start’ from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands/server.rb:80:in `start’ […]

按JSON数组中的匹配数查询和排序

在Postgres 9.4和Rails的jsonb列中使用JSON数组,我可以设置一个范围,返回包含传递给范围方法的数组中的任何元素的所有行 – 如下所示: scope :tagged, ->(tags) { where([“data->’tags’ ?| ARRAY[:tags]”, { tags: tags }]) } 我还想根据数组中匹配元素的数量来排序结果。 我很欣赏我可能需要超出ActiveRecord的范围才能做到这一点,所以一个vanilla Postgres SQL的答案也很有帮助,但如果它可以包含在ActiveRecord中,那么它可以是一个可链的范围。 根据要求,这是一个示例表。 (实际的架构要复杂得多,但这就是我所关心的。) id | data —-+———————————– 1 | {“tags”: [“foo”, “bar”, “baz”]} 2 | {“tags”: [“bish”, “bash”, “baz”]} 3 | 4 | {“tags”: [“foo”, “foo”, “foo”]} 用例是基于标签查找相关内容。 更多匹配标签更相关,因此结果应按匹配数量排序。 在Ruby中,我有一个像这样的简单方法: Page.tagged([‘foo’, ‘bish’, ‘bash’, ‘baz’]).all 哪个应按以下顺序返回页面: 2, […]

如何在sidekiq中找到失败的工作列表?

我在sidekiq中使用rails4 。 如何找到失败的作业列表并重新处理它们以在sidekiq执行?

rails database.yml不接受ERB

在我的database.yml中,我有: staging: adapter: encoding: database: host: port: pool: username: password: 但是,在实际启动puma时它不会读取ERB部分: /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require’: Could not load ‘active_record/connection_adapters/_adapter’. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than ‘mysql’, ‘mysql2’, ‘postgresql’ or ‘sqlite3’ add the necessary adapter gem to the Gemfile. (LoadError) 这没有任何意义,因为在Rails代码中加载数据库配置: def database_configuration yaml = Pathname.new(paths[“config/database”].existent.first || “”) […]

使用反引号从Rails应用程序中启动另一个Rails服务器

我目前正在开发一个Rails应用程序,作为另一个Rails应用程序的更新程序。 我有更新过程, 下载新版本zip 提取到正确的位置 同步资产 捆绑安装 预编译资产 启动服务器 – bundle exec rails server 我在最后一步遇到了问题。 当我跑: Dir.chdir(‘../other-project’) `bundle exec rails server -d -p 3000` 从更新程序应用程序,它似乎是从更新程序包中提取而不是它应该从中提取的新应用程序包。 更新程序是用Rails 4编写的,它正在更新的应用程序是rails 3。 当我尝试启动服务器时,我得到以下内容: /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/railtie/configuration.rb:95:in `method_missing’: undefined method `handlebars’ for # (NoMethodError) from /home/vagrant/apps/other-project/config/application.rb:22:in `’ from /home/vagrant/apps/other-project>’ from /home/vagrant/apps/other-project/config/application.rb:13:in `’ from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:79:in `require’ from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:79:in `block in server’ from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:76:in `tap’ […]

Rails 4 + Rolify Gem:用户角色未通过UI更新

我有一个编辑视图,允许我更新特定用户的角色。 我已经包含了下面的代码,但是,为了给你一个想法,当我取消选中页面上的框时,我的控制器中的put语句正确地发现角色关联是错误的,可以在日志中进一步查看。 但是,稍后在日志中,您可以看到角色重新关联回“true”,我不确定为什么会出现这种情况! 如果未选中复选框,我希望从用户中删除这些角色。 用户/ edit.html.erb: {action: “update”}, :html => { :class => ‘user-role’ } do |f| %> User Roles Check the boxes to grant different roles to : Administrator Member users_controller.rb: def update @user = User.find(params[:id]) @customer = current_user.customer @logged_in_user = User.find_by_email(current_user.email) if params[:admin] == “1” @user.grant(:admin) elsif params[:admin] == “0” @user.remove_role(:admin) end if […]

rake db:migrate不起作用(Rails 4.0.4)

我在Rails 4.0.4 / Ruby 2.1.0上有一个新的应用程序。 我做的第一件事就是添加Devise gem。 当我想运行rake db:migrate时,它什么都不做。 没有错误,但是没有执行迁移。 你能帮我解决一下这个案子怎么办? 我找不到问题出在哪里。 谢谢! 切赫

没有Ransack :: Search对象已提供给search_form_for

我意识到其他人已经问过这个错误,但这与其他情况有关。 我已经为rails 4添加了Ransack gem,并且已经安装了捆绑: gem “ransack”, github: “activerecord-hackery/ransack”, branch: “rails-4” 我还编辑了我的控制器如下(recipes_controller): def index if params[:tag] @all_recipes = Recipe.tagged_with(params[:tag]) else @all_recipes = Recipe.all end if signed_in? @user_recipes = current_user.recipes.order(“created_at DESC”).paginate(page: params[:page], :per_page => 10) end if params[:q] @q = Recipe.search(params[:q]) @all_recipes = @q.result(distinct: true) end end 然后我在表单中添加如下(食谱/索引): 我收到以下错误 : No Ransack::Search object was provided to search_form_for! […]

form_for rails 4中的参数数量错误

我正在使用form_for标签,它在Rails 3.0.4环境中工作。 但是当我尝试将我的项目更新为Rails 4.它会出现以下错误 错误的参数数量(3表示2)。 这是我的代码 alerts_path do |f| %>

Heroku上的Rails 4应用程序是500,但日志中没有错误消息

我已经制作了一个新的Rails 4 beta应用程序并将其部署到Heroku(使用Ruby 2.0.0,并通过Procfile使用Unicorn)。 它在本地foreman start时运行良好,但是当我访问已部署应用程序的主页时,我只是得到标准的Heroku 500错误: We’re sorry, but something went wrong. If you are the application owner check the logs for more information. 但是,在日志中, 没有错误 。 我不知道是什么导致500。 这是我上一次git push heroku master的输出: Counting objects: 6, done. Delta compression using up to 8 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 656 bytes, […]