小编Bar*_*acs的帖子

使用shoulda匹配器无法获得唯一性验证测试通过

我的avatar_parts_spec.rb中有一个shoulda匹配器,我无法通过它:

测试:

require 'rails_helper'

RSpec.describe AvatarPart, :type => :model do
  it { should validate_presence_of(:name) }
  it { should validate_presence_of(:type) }
  it { should validate_uniqueness_of(:name).case_insensitive }
  it { should belong_to(:avatar) }
end
Run Code Online (Sandbox Code Playgroud)

模型:

class AvatarPart < ActiveRecord::Base
  attr_accessible :name, :type, :avatar_id

  belongs_to :avatar

  validates_uniqueness_of :name, case_sensitive: false
  validates :name, :type, presence: true, allow_blank: false
end
Run Code Online (Sandbox Code Playgroud)

移民:

class CreateAvatarParts < ActiveRecord::Migration
  def change
    create_table :avatar_parts do |t|
      t.string :name, null: false
      t.string :type, null: false
      t.integer :avatar_id      

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

错误: …

ruby sqlite ruby-on-rails shoulda ruby-on-rails-3

16
推荐指数
2
解决办法
9680
查看次数

在编辑时显示文件字段值

上传图片时,一切正常。但是在编辑时,它不会显示文件字段值。只是一个空的file_field,好像什么都没有。图片标题正确显示。其他文字是匈牙利文。

在此处输入图片说明

_form.html.haml

= simple_nested_form_for(@post) do |f|
  = f.input :title, label: 'Cím'
  = f.input :body, label: "Test"
  = f.fields_for :pics do |pic_form|
    = pic_form.text_field :title
    %br/
    = pic_form.file_field :image
    = pic_form.link_to_remove "Kép Törlése", class: "btn btn-warning"
    %br/
  %br/
  %p= f.link_to_add "Kép hozzáadása", :pics, class: "btn btn-success"
  %br/
  %br/
  = f.submit "Mentés", class: "btn btn-primary"
= javascript_include_tag :defaults, "nested_form"
Run Code Online (Sandbox Code Playgroud)

如何将现有文件传递到file_field?

ruby ruby-on-rails

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

对分区的MySQL表的特定分区运行查询

我想Ecto.Query.from在分区的MySQL表的特定分区上运行我.

示例表:

CREATE TABLE `dogs` (
  `dog_id` bigint(20) unsigned NOT NULL,
   ...
  PRIMARY KEY (`dog_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY HASH (dog_id)
PARTITIONS 10 */ 
Run Code Online (Sandbox Code Playgroud)

我希望实现的理想主义查询:

from(i in dogs, select: i.dog_id, partition: "p1")

上面的内容不起作用,所以我通过将查询转换为字符串Ecto.Adapters.SQL.to_sql并对其进行编辑实现了这 一点.

... <> "PARTITION (#{partition}) AS" <> ...

这感觉很糟糕,它可能会破坏未来的版本,有没有办法用Ecto实现这一目标?

ecto

5
推荐指数
0
解决办法
105
查看次数

更改Carrierwave上传路径以适应Cloud 66的配置

使用Cloud 66部署rails应用程序到digitalocean.com.除了尝试上传图像时的一些权限错误外,一切正常.

 Errno::EACCES (Permission denied - /var/deploy/anabol/web_head/releases/20130608104347/public/uploads/tmp): 
Run Code Online (Sandbox Code Playgroud)

image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base
...
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
...
end
Run Code Online (Sandbox Code Playgroud)

有一个描述,如何解决这里的问题:https: //www.cloud66.com/help/permission_denied_errors

我将store_dir路径更改为:

  def store_dir
    "#{Rails.root}/tmp/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.我仍然收到此错误:

 » 13:49:25.696 Errno::EACCES (Permission denied - /var/deploy/anabol/web_head/releases/20130608114659/public/uploads/tmp): 
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

编辑:

上传适用于image_uploader.rb中的此部分:

  def cache_dir
    # should return path to cache dir
    Rails.root.join 'tmp/uploads/cache'
  end

  def store_dir
    "#{Rails.root}/tmp/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
Run Code Online (Sandbox Code Playgroud)

但现在我得到:

ActionController::RoutingError (No route matches [GET] "/var/deploy/anabol/web_head/releases/20130608164223/tmp/uploads/profile/image/3/thumb_Screenshot_from_2013-06-05_17_27_54.png"):
Run Code Online (Sandbox Code Playgroud)

在视图上,仅显示图像路径.

ruby deployment ruby-on-rails carrierwave cloud66

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

使用Twitter Bootstrap Carousel激活第一项的课程

我正在努力让twitter轮播正常工作:

我想将.active类添加到第一个.item div.

  .carousel-inner
    - @photos.each do |photo, index|
      .item{ class: "#{ "active" if index == 0 }"}
        = image_tag(photo.image_url, class: "carousel-photo")
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它不会将.active类添加到循环的第一个元素.如何将.active类仅添加到循环的第一个元素?

ruby ruby-on-rails twitter-bootstrap

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

Faye 制作中的设置

我已经在本地主机上设置了 Faye,并且工作正常。

我现在尝试使用 Cloud66 部署服务将其部署在 DigitalOcean VPS 上。为了运行该命令,我使用“after_rails”挂钩。

rackup $RAILS_STACK_PATH/faye.ru -s Thin -E 生产

这给了我错误:

部署期间出错:after_rails 挂钩期间出错:服务器:not_specified。无法运行命令:/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- faye (LoadError) from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inrequire' 来自 /var/deploy/anabol/web_head/current/faye.ru:1:in block in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize' from /var/deploy/anabol/web_head/current/faye.ru:innew'中的instance_eval'来自/var/deploy/anabol/web_head/current /faye.ru:in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:ineval' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in new_from_string' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:inparse_file' from /usr/local /lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:277:in build_app_and_options_from_config' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:199:inapp' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/ rack-1.5.2/lib/rack/server.rb:314:in wrapped_app' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:instart' 从 /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb :141:in start' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/bin/rackup:4:in'来自 /usr/local/bin/rackup:23:in load' from /usr/local/bin/rackup:23:in'

github 仓库: https: …

ruby ruby-on-rails faye cloud66

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

路由到current_user路径

所以我在顶部有一个Bootstrap导航栏.

我想link_to current_user的编辑路径,但我总是得到错误:

ActionController::RoutingError at /blog

No route matches {:action=>"edit", :controller=>"users"}
Run Code Online (Sandbox Code Playgroud)

这就是我现在正在尝试的:

<% if current_user %> <--! user logged in? -->
<% @user ||= current_user %> 
<%= link_to 'Settings', edit_user_path  %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我在/ user/1 /页面上没有这个错误,但我在其他地方都有它.

也尝试了这个,但没有帮助:

def edit
  if params[:id]
    @user = User.find(params[:id])
  else
    @user = current_user
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3.2

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

ZURB基金会的自定义顶栏背文本

当我将此代码添加到我的application.js时,它无法正常工作.我再显示了2个'custom_text'按钮,它保留了原来的'后退'按钮.

    $(document).foundation()
        .foundation('topbar', {
            index : 0,
            stickyClass : 'sticky',
            custom_back_text: true,
            back_text: 'custom_text',
            init : true
        });
Run Code Online (Sandbox Code Playgroud)

怎么可能修复?

javascript zurb-foundation

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

使用current_page在HAML中激活链接?

所以我得到了这个糟糕的代码(当链接不是根路径时,链接会消失.):

    = link_to "News", root_path, class: "active" if current_page?(root_path)
Run Code Online (Sandbox Code Playgroud)

当current_page是root_path时,我想建立链接类.active.

试图找到Rails方式

ruby haml ruby-on-rails

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