小编CWi*_*tty的帖子

将对象传递给AutoMapper映射

我正在使用AutoMapper,正在映射的实体的一些值是我当前方法中的变量.我试过谷歌它但无济于事.我可以将一组KeyValue对或一个对象或东西传递给我的映射以使其使用这些值吗?

后映射修改示例

//comment variable is a Comment class instance
var imageComment = AutoMapper.Mapper.Map<Data.ImageComment>(comment);
//I want to pass in imageId so I dont have to manually add it after the mapping
imageComment.ImageId = imageId;
Run Code Online (Sandbox Code Playgroud)

c# automapper asp.net-mvc-4

31
推荐指数
4
解决办法
2万
查看次数

ActionView :: MissingTemplate:使用"邮件程序"缺少模板signup_mailer/welcome_message.搜索:*"signup_mailer"

我正在使用Sidekiq以异步方式发送我的电子邮件,但是由于无法找到电子邮件模板而遇到了持续性错误.它不一致,因为它不时工作(就像我正在测试时).您可以看到我甚至尝试指定模板的路径和名称.

我在Honeybadger收到的错误是: ActionView::MissingTemplate: Missing template signup_mailer/welcome_message with "mailer". Searched in: * "signup_mailer"

app/mailers/signup_mailer.rb

class SignupMailer < ActionMailer::Base
  default from: 'hello@companycam.com'

  def welcome_message(company, user)
    @company = company
    @user = user
    @web_url = root_url
    mail(to: @company.email, subject: 'Welcome to CompanyCam', template_path: 'signup_mailer', template_name: 'welcome_message')
  end
end
Run Code Online (Sandbox Code Playgroud)

你可以在图片中看到,实际上有一个被调用的视图welcome_message.html.erb和文本版本也位于其中app/views/signup_mailer/ 在此输入图像描述

ruby-on-rails ruby-on-rails-5

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

独角兽与Ruby 2.4.1引起奇怪的崩溃

我正在从Ruby 2.3.1升级到Ruby 2.4.1,因此Unicorn似乎与新版本不兼容.我得到以下错误.我正在使用Unicorn 5.1.0并尝试使用Unicorn 5.3.1无济于事.我是否需要使用不同的lib而不是XCode Tools进行编译?

启动服务器后,我立即得到错误foreman start和Procfile:

webpack: bin/webpack-dev-server
gulp: gulp
redis: ./scripts/start_redis_server.sh
sidekiq: bundle exec sidekiq -C config/sidekiq.yml
annotations_server: ./scripts/start_annotation_server.sh
rails: bundle exec unicorn_rails -p 3000 -c config/unicorn.rb
Run Code Online (Sandbox Code Playgroud)

如果我使用一个简单的东西bin/rails s,它似乎开始并运行良好我为什么我认为它是特定于Unicorn.

objc[40847]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called.
objc[40846]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called.
objc[40846]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was …
Run Code Online (Sandbox Code Playgroud)

ruby unicorn

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

ActiveModelSerializers 不用于渲染 json

我正在使用0.9.3Active Model Serializers 的版本。当我调用render json: @collection甚至单个对象时,它使用默认to_json方法并返回完整对象。我没有尝试任何花哨的东西。我的控制器在目录中app/controllers/v1/,序列化程序在目录中app/serializers/v1/,我也在app/serializers/. 序列化器类名称为UserSerializer,模型为User。为什么会发生这种情况的任何想法都会很棒。

ruby-on-rails active-model-serializers ruby-on-rails-4

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

RocksDB IO错误锁定:无可用锁定

我正在iOS上使用RocksDB,并且正在使用AsyncStorage适配器以及redux-persist。每当我启动应用程序时,都会出现错误:

Failed to open db at path /Users/chadwilken/Library/Developer/CoreSimulator/Devices/818C47D2-ECF0-4003-865E-1FCAADCEF624/data/Containers/Data/Application/6C4F8F80-52E3-48B1-8ED5-84FB9F087514/Documents/RKAsyncRocksDBStorage.

RocksDB Status: IO error: lock /Users/chadwilken/Library/Developer/CoreSimulator/Devices/818C47D2-ECF0-4003-865E-1FCAADCEF624/data/Containers/Data/Application/6C4F8F80-52E3-48B1-8ED5-84FB9F087514/Documents/RKAsyncRocksDBStorage/LOCK: No locks available.
Run Code Online (Sandbox Code Playgroud)

充当适配器的类是:

// Copyright 2004-present Facebook. All Rights Reserved.

#import "AsyncRocksDBStorage.h"
#include <string>
#import <Foundation/Foundation.h>
#import <RCTConvert.h>
#import <RCTLog.h>
#import <RCTUtils.h>

#include <rocksdb/db.h>
#include <rocksdb/merge_operator.h>
#include <rocksdb/options.h>
#include <rocksdb/slice.h>
#include <rocksdb/status.h>

static NSString *const RKAsyncRocksDBStorageDirectory = @"RKAsyncRocksDBStorage";

namespace {
    rocksdb::Slice SliceFromString(NSString *string)
    {
        return rocksdb::Slice((const char *)[string UTF8String], [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
    }

    void deepMergeInto(NSMutableDictionary *output, NSDictionary *input) {
        for (NSString *key in input) …
Run Code Online (Sandbox Code Playgroud)

ios rocksdb react-native asyncstorage

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

使用AMS加速大数据图形查询和渲染

我有一个跨越多个表的查询,最终使用Active Model Serializers来呈现数据.目前,大部分时间都花在序列化器上,因为我不得不从序列化器本身查询一些数据.我想找到一种方法来加快速度,这可能不是使用AMS(这没关系).

我的数据模型如下:

Location
  -> Images
  -> Recent Images
  -> Days Images
Image
  -> User
Run Code Online (Sandbox Code Playgroud)

recent_imagesdays_images是一样的images,但用范围做了where由天,筛选limit到6.

目前整个过程在本地需要大约15秒,在生产中需要2-4秒.我觉得我可以更快地执行这个,但我不完全确定如何修改我的代码.

获取Locations 的查询是:

ids = @company
  .locations
  .active
  .has_image_taken
  .order(last_image_taken: :desc)
  .page(page)
  .per(per_page)
  .pluck(:id)
Location.fetch_multi(ids)
Run Code Online (Sandbox Code Playgroud)

fetch_multi来自identity_cache gem.然后这些结果击中了序列化器:

class V1::RecentLocationSerializer < ActiveModel::Serializer
  has_many :recent_images, serializer: V1::RecentImageSerializer do
    if scope[:view_user_photos]
      object.fetch_recent_images.take(6)
    else
      ids = object.recent_images.where(user_id: scope[:current_user].id).limit(6).pluck(:id)
      Image.fetch_multi(ids)
    end
  end

  has_many :days_images do
    if scope[:view_user_photos]
      object.fetch_days_images
    else
      ids = object.days_images.where(user_id: scope[:current_user].id).pluck(:id)
      Image.fetch_multi(ids) …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails active-model-serializers

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

优化具有多个连接的大表查询的索引

我们有一个images包含大约 2500 万条记录的表,当我根据多个连接的值查询该表时,规划器的估计与行计数的实际结果有很大不同。我们还有其他查询,这些查询大致相同,但没有所有连接,而且速度要快得多。我想知道我可以采取哪些步骤来调试和优化查询。另外,是使用一个索引覆盖连接和子句中包含的所有列where,还是使用多个索引,一个索引用于每个连接列,另一个索引包含子句中的所有字段where

查询:

EXPLAIN ANALYZE
SELECT "images".* FROM "images" 
INNER JOIN "locations" ON "locations"."id" = "images"."location_id" 
INNER JOIN "users" ON "images"."creator_id" = "users"."id" 
INNER JOIN "user_groups" ON "users"."id" = "user_groups"."user_id" 
WHERE "images"."deleted_at" IS NULL 
AND "user_groups"."group_id" = 7 
AND "images"."creator_type" = 'User' 
AND "images"."status" = 2 
AND "locations"."active" = TRUE 
ORDER BY date_uploaded DESC 
LIMIT 50 
OFFSET 0;
Run Code Online (Sandbox Code Playgroud)

解释一下:

Limit  (cost=25670.61..25670.74 rows=50 width=585) (actual time=1556.250..1556.278 rows=50 loops=1)
  ->  Sort  (cost=25670.61..25674.90 rows=1714 width=585) (actual …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.4

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

归档时,Assets.car比实际Images.xcassets文件夹大6倍

在重新设计期间,我们将XCode项目切换为使用资产目录.我们需要几个大的背景图像,我们将其包含在资产目录中.这些图像最初是JPEG,我们将其重命名为PNG以节省空间.磁盘上的映像大小为19.1MB,但是当我们归档应用程序时Assets.car,生成的文件比它大6倍.我尝试过使用PNG并压缩它们,但尺寸仍然很大.我不确定我还能做什么.

ios ios7 xcasset

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

将 C# SHA256 哈希转换为 Ruby

我有 C# 代码:

byte[] bytes = new UnicodeEncoding().GetBytes(input);
return Convert.ToBase64String(new SHA256Managed().ComputeHash(bytes));
Run Code Online (Sandbox Code Playgroud)

将字符串编码为 SHA2 哈希值,然后进行 Base 64 编码。我需要将其转换为 Ruby。

我尝试了几种方法。这是其中之一:

hash = Digest::SHA256.digest(val.encode('utf-8'))
encoded = Base64.urlsafe_encode64(hash)
Run Code Online (Sandbox Code Playgroud)

我的代码都产生不匹配的相同结果。我无法让他们工作。任何有关转换的帮助将不胜感激。

更新

经过一番折腾后,我能够让它与硬编码数组一起工作,问题是 C# 代码在数组中的每个元素后面添加了一个 0。这是工作的 ruby​​ 代码(带有硬编码数组):

Digest::SHA256.base64digest([99,0,104,0,97,0,100,0].pack('C*').force_encoding('utf-16'))
Run Code Online (Sandbox Code Playgroud)

我想我可以遍历数组,但这似乎没有必要。

c# ruby sha

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

使用 ActiveRecord 枚举在模型上生成“新”类方法时出错

我在版本4.1.4 的Rails 应用程序中使用ActiveRecord 枚举。我的模型列上有一个枚举。当我尝试使用 helper 方法查看所有可用状态时,出现错误:您试图在模型“Message”上定义一个名为“status”的枚举,但这将生成一个类方法“new”,即已经由 Active Record 定义。statusMessagestatuses

Message模型belongs_to其他两个车型,但是这不是问题,因为我注释掉的关系,它仍然呈现的错误。我似乎找不到其他人有这个问题。

class Message < ActiveRecord::Base
  belongs_to :user
  belongs_to :contact
  enum status: %w(new assigned archived)
end
Run Code Online (Sandbox Code Playgroud)

enums activerecord ruby-on-rails

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