小编Tho*_*mas的帖子

为什么捆绑器不会安装JSON gem?

尝试运行时出现以下错误cap production deploy.

DEBUG [dc362284]    Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284]    An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284]    Make sure that `gem install json -v '1.8.1'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

值得注意的是,此部署正在运行,而不是我升级到Ruby 2.1.0以消除编码错误.我本地升级,工作正常.我跑rvm install 2.1.0,并rvm use 2.1.0随后改变了我的.ruby-version文件,以反映该红宝石升级.

bundle install命令在本地工作,但当我ssh到目标服务器并运行此命令时,会产生相同的上述错误.

如果我跑,gem list我可以在宝石列表中看到这一点.

...
jquery-rails (3.0.4)
json (1.8.1)
less (2.3.2)
...
Run Code Online (Sandbox Code Playgroud)

如果我在gem install json -v '1.8.1'本地服务器上尝试推荐的解决方案,并在目标服务器上获得以下输出:

Building native extensions.  This could …
Run Code Online (Sandbox Code Playgroud)

gem capistrano ruby-on-rails bundler

80
推荐指数
11
解决办法
11万
查看次数

如何使用ElasticSearch-Rails查询dsl返回相关关系

我是ElasticSearch的新手,但需要使用它来返回产品列表.请不要包含旧答案的答案或链接,这些答案会引用已弃用的轮胎宝石.

的Gemfile

ruby '2.2.0'
gem 'rails', '4.0.3'
gem 'elasticsearch-model', '~> 0.1.6'
gem 'elasticsearch-rails', '~> 0.1.6'
Run Code Online (Sandbox Code Playgroud)

我有几个关系模型.我在下面列出了关系.

模型和关系

product.rb 包括Searchable

  belongs_to :family
  belongs_to :collection
  has_many :benefits_products
  has_many :benefits, :through => :benefits_products

  def as_indexed_json(options={})
    as_json(
        include: {:benefits => { :only => [ :id, :name ] },
                  :categories => { :only => [ :id, :name ] } }
    )
  end
Run Code Online (Sandbox Code Playgroud)

collection.rb

  include Searchable

  has_many :products

  def as_indexed_json(options={})
    as_json(
      include: [:products]
    )
  end
Run Code Online (Sandbox Code Playgroud)

family.rb

  include Searchable

  has_many :products

  def as_indexed_json(options={})
    as_json(
      include: [:products]
    ) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails relationship elasticsearch ruby-on-rails-4 elasticsearch-rails

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

如何在ROR部署中为git + capistrano 3配置远程引用?

我正在尝试使用capistrano(第一次)部署我的rails应用程序.首先要点,我正在使用:

  • 红宝石1.9.3p362
  • Rails 3.2.13
  • rvm 1.24.7
  • Capistrano 3.0.1
  • Phusion Passenger 4.0.26
  • Ubuntu 12.04 LTS

尝试运行时出现以下错误 cap production deploy

DEBUG [679a47be]致命:没有远程配置列出引用.

我的完整cap production deploy输出包括在下面

   INFO [488ba755] Running /usr/bin/env mkdir -p /tmp/AppName/ on sub.example.com
    DEBUG [488ba755] Command: /usr/bin/env mkdir -p /tmp/AppName/
     INFO [488ba755] Finished in 1.730 seconds with exit status 0 (successful).
    DEBUG Uploading /tmp/AppName/git-ssh.sh 0.0%
     INFO Uploading /tmp/AppName/git-ssh.sh 100.0%
     INFO [c895f068] Running /usr/bin/env chmod +x /tmp/AppName/git-ssh.sh on sub.example.com
    DEBUG [c895f068] Command: /usr/bin/env chmod +x /tmp/AppName/git-ssh.sh
     INFO [c895f068] Finished in …
Run Code Online (Sandbox Code Playgroud)

git deployment capistrano ruby-on-rails capistrano3

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

如何添加额外数据以连接 factory_bot 工厂中的表

我通过它们之间的关系为用户和站点提供了具有 has_many 的模型。sites_users连接表上有一个额外的数据,is_default它是布尔类型,目的是允许每个用户从该用户的相关站点列表中拥有一个默认站点。

用户模型

class User < ApplicationRecord
  has_many :sites_users
  has_many :sites, through: :sites_users
  accepts_nested_attributes_for :sites_users, allow_destroy: true
  ...
end
Run Code Online (Sandbox Code Playgroud)

用户工厂

factory :user do
  sequence(:email) { |n| "user_#{n}@example.com" }
  role { Role.find_by(title: 'Marketing') }
  image { Rack::Test::UploadedFile.new(Rails.root.join('spec', 'support', 'fixtures', 'user.jpg'), 'image/jpeg') }

  factory :super_admin do
    role { Role.find_by(title: "Super Admin") }
    admin true
  end

  before :create do |u|
    u.sites_users.build(site: site, is_default: true)
  end
Run Code Online (Sandbox Code Playgroud)

结尾

备用用户工厂方法

在用户工厂中,我也尝试了下面包含的这种方法,但找不到包含is_default: true使用此语法的方法。所以我最终放弃了这个方法,转而支持上面的before_create调用。

factory :user do
  ...
  site …
Run Code Online (Sandbox Code Playgroud)

testing ruby-on-rails ruby-on-rails-5 factory-bot

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

facebook之后刷新窗口

我在公司页面中创建了一个应用程序,以添加更多带有"喜欢门"的标签/页面,以确保用户在继续前进之前喜欢我们的页面.如果用户喜欢我们的页面"index2.php",那么类似的门位于一个位置说"index.php",他们不喜欢我们"index1.php"是包含的.这一切都正常.

我的问题是我想在"index1.php"(如果他们不喜欢我们)页面中包含一个"喜欢"按钮.我添加了一个允许用户喜欢我们的按钮,但是在点击此按钮后需要刷新,这样可以再次在同类门处评估用户并相应地重定向.

下面的代码允许用户喜欢,但不会像我希望的那样重定向.我查看了fb开发者页面上的示例,但我是fb app dev的新手,无法弄清楚我的错误.任何帮助将不胜感激,希望这是足够的信息,但如果您需要更多,请回复.感谢您的任何帮助,您可以提供.

    <div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
  FB.Event.subscribe('edge.create',
    function() {
        top.window.location = 'http://www.facebook.com/pages/TAG_Communications/122751567742494?sk=app_243094502403141';
        }
    );
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="http://www.facebook.com/pages/TAG_Communications/122751567742494" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>
Run Code Online (Sandbox Code Playgroud)

redirect facebook facebook-like

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

无法从命令行访问Coda应用程序

我无法从命令行访问Coda.我安装了"命令行coda"插件,验证我的安装位置正确,但我仍然可以访问Coda.Coda位于我的"Applications"文件夹中,该文件夹是插件的默认位置.

有人有这个问题吗?有小费吗?在他们的网站上,建议您更改路径.

export CODEPATH=/Applications/Coda.app
Run Code Online (Sandbox Code Playgroud)

所以我在.bash_profile中包含了上面这一行并没有帮助.

$ Coda -v
-bash: Coda: command not found
Run Code Online (Sandbox Code Playgroud)

感谢您提供的任何指示.

command-line coda

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

我应该如何添加用户配置文件和隐私来设计?

我有一个rails 3 devise app,用户有个人资料和隐私设置.我目前有这个工作,但我担心效率,并会喜欢经验丰富的rails dev的建议.

我使用设计生成了用户模型,并将配置文件和隐私模型搭建成了包含被认为不需要注册的项目.我希望用户有不同的设置链接.

帐户设置=>设计 - 只需要登录类型的东西,用户名,密码配置文件设置=>配置文件模型 - 描述,头像,生日等.隐私设置=>隐私模型 - 控制用户配置文件字段的基本隐藏/显示的复选框.

我建立了自己的人际关系:

user.rb

has_one :profile
has_one :privacy
Run Code Online (Sandbox Code Playgroud)

profile.rb

belongs_to :user
Run Code Online (Sandbox Code Playgroud)

privacy.rb

belongs_to :user
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎非常低效.要显示配置文件,我依赖于加载三个表:用户,配置文件和隐私.

我认为Profile和Privacy中的所有表列都应该包含在users表中,这会更有意义吗?我如何分开不同的形式?

我的想法只是向用户控制器添加配置文件方法和隐私方法,而不是在我的用户视图中创建配置文件和隐私模板.用不同的形式控制每个人编辑的用户记录的不同部分.

这有意义吗?这比我现在拥有的独立脚手架更有意义吗?

performance ruby-on-rails code-organization user-profile devise

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

jcrop预览包含奇怪的错误

我的jcrop预览需要帮助.我正在关注railscast#182的这个教程,但是出了点问题,我似乎可以搞清楚.这有点难以解释,但裁剪预览不起作用,第二张图像出现在裁剪调整大小手柄内.随着作物的大小调整,这个额外的图像会拉伸和倾斜.由于这有点令人困惑,我的应用程序仍然在我的本地机器上,我已经包含了当前功能视频演示 以及我假设的以下所有相关代码.

我还发送了一封电子邮件给jcrop,他们建议这可能是由于我的预览区域出错.我认为这是正确的,因为我目前正在使用Ryan Bates的railscasts tut提供的那个.我认为唯一可能是问题的是"attr_accessible"和"attr_accessor".我是ruby和rails的新手,所以我在理解错误时遇到了一些困难.非常感谢任何帮助,如果我能提供任何进一步的信息,请告诉我.

首先是我的avatar_uploader.rb

class AvatarUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick

  storage :file

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :large do
    resize_to_limit(600, 600)
  end

  version :thumb do
    process :crop
    resize_to_fill(100, 100)
  end

  version :mini do
    process :crop
    resize_to_fill(48, 48)
  end

  version :nano do
    process :crop
    resize_to_fill(20, 20)
  end

  def crop
    if …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails preview jcrop

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

Safari jQuery语法错误

我在safari(7.0.3)中收到以下错误.Chrome和FF没有任何投诉,工作得很好.

Error: Syntax error, unrecognized expression: #filters input:not([name^="radio-"]

从这行代码:

jQuery('#filters input:not([name^="radio-"]').change(function(e) { triggerIsotopeUpdate(); });

我无法在SO上找到适合我情况的解决方案.有没有人遇到过这个问题?我很感激您提供的任何帮助.

javascript safari jquery jquery-selectors

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