小编use*_*363的帖子

NoMethodError:rspec测试中未定义的方法`symbolize_keys'

以下是rspec中更新的错误:

  4) CustomersController GET customer page 'update' should be successful
     Failure/Error: post 'update', customer
     NoMethodError:
       undefined method `symbolize_keys' for "1":String
     # ./spec/controllers/customers_controller_spec.rb:38:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

rspec代码:

it "'update' should be successful" do

  customer = Factory(:customer)      
  post 'update', customer
  response.should be_success
end
Run Code Online (Sandbox Code Playgroud)

客户控制器中的更新:

  def update
    @customer = Customer.find(params[:id])
    if @customer.update_attributes(params[:customer], :as => :roles_new_update)
      if @customer.changed
        @message = 'The following info have been changed\n' + @customer.changes.to_s
        @subject ='Customer info was changed BY' + session[:user_name]
        notify_all_in_sales_eng(@message,@subject)
      end  

      redirect_to session[('page'+session[:page_step].to_s).to_sym], :notice …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rspec2 ruby-on-rails-3.1

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

如何访问rails 3.1.0 app中的多个数据库?

在我们的rails 3.1.0应用程序中,我们希望根据用户凭据访问多个数据库.有多种解决方案.一种是为每个用户安装一个应用程序,每个应用程序只访问一个数据库.问题是,如果有许多数据库(例如数百个),则应用程序安装数量相同.维护大量应用程序可能很麻烦.另一种方法是访问应用程序中的多个数据库.然而,这种方法似乎不容易在rails 3.1.0中得到支持.当然,应用程序中会有一个代码来决定为刚刚登录的用户访问哪个数据库.有人可以提供有关该方法的优缺点的解决方案和见解吗?非常感谢.

ruby mysql ruby-on-rails ruby-on-rails-3.1

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

JOI.validate() 不允许“dataValues”

这是User带有 JOI (14.3) 验证的模型的代码。该代码曾经在创建新用户时有效,但最近似乎感冒并抛出以下错误xxx not allowed

require('dotenv').config({path: process.cwd() +'\\config\\.env'});
const jwt = require('jsonwebtoken');
const moment = require('moment');
const Joi = require('joi');
const Sql = require('sequelize');
const db = require("../startup/db");

const User = db.define('user', {
    name: {type: Sql.STRING,
           allowNull: false,
           min: 2,
           max: 50,
    },
    email: {type: Sql.STRING,
            isEmail: true
    },      
    cell: {type: Sql.STRING,
            allowNull: false,
            min: 10,
            max: 20,
    },
    cell_country_code: {type: Sql.STRING,
                        allowNull: false
    },
    comp_name: {type: Sql.STRING
    },
    status: {type: Sql.STRING,
             allowNull: false,
             isIn: …
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js joi

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

任务':react-native-gesture-handler:compileDebugJavaWithJavac'的执行失败

我通过gradle.propertiesandroidRN 0.59项目的下面添加2行来解决与AndroidX相关的不兼容问题。

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

现在与run-android相关的另一个错误react-native-gesture-handler。然后,我yarn remove目前react-native-gesture-handler1.2.0并将其添加回。新版本是1.3.0。这是错误:

> Task :react-native-gesture-handler:compileDebugJavaWithJavac
C:\D\code\js\emps_app\node_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:3: error: package android.support.v4.util does not exist
import android.support.v4.util.Pools;
                              ^
C:\D\code\js\emps_app\node_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:19: error: package Pools does not exist
  private static final Pools.SynchronizedPool<RNGestureHandlerEvent> EVENTS_POOL =
                            ^
C:\D\code\js\emps_app\node_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:3: error: package android.support.v4.util does not exist
import android.support.v4.util.Pools;
                              ^
C:\D\code\js\emps_app\node_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerStateChangeEvent.java:19: error: package Pools does not exist
  private static final Pools.SynchronizedPool<RNGestureHandlerStateChangeEvent> EVENTS_POOL =
                            ^
C:\D\code\js\emps_app\node_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerEvent.java:20: error: package Pools does not exist …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android

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

由 async/await 引起的 TypeError: destroy 不是 useEffect 中的函数

我的 React Native捆绑(0.61.5)了一个16.9.0React,但它不是最新的。在应用程序中useEffect返回错误TypeError: distroy is not a function

在此输入图像描述

这是useEffect代码:

useEffect(async () => {
    try {
      let url = `${GLOBAL.BASE_URL}/api/events/active?group_id=${encodeURIComponent(group_id)}&_role=${role}&_grpmember_id=${grpmember_id}&_group_id=${encodeURIComponent(group_id)}&_device_id=${encodeURIComponent(device_id)}`;
      let res =  await fetch(url, {
        method: "GET",
          headers: {
          'Accept': 'application/json, text/plain',
          'Content-Type': 'application/json',   
          "x-auth-token": token.password,
          "x-auth-secret": token.username,
        }
      });
      //check secret token 
      let secret = res.headers.get("x-auth-secret");
      let jwttoken = res.headers.get("x-auth-token");
      res = await res.json();
      if (secret && jwttoken && (typeof secret !== 'undefined') && (typeof jwttoken !== 'undefined') && …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native

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

避免使用solidity的transfer()/send()?

我在 2019 年 9 月发现了这篇关于避免使用 Solidity 的文章transfer()/send()。以下是文章中的推理:

\n
\n

看起来 EIP 1884 正在伊斯坦布尔硬分叉中前进。这一变化增加了 SLOAD 操作的 Gas 成本,因此破坏了一些现有的智能合约。

\n
\n
\n

这些合约将会被破坏,因为它们的后备函数过去消耗的gas不到2300,而现在它们\xe2\x80\x99将消耗更多。为什么 2300 Gas 很重要?如果通过 Solidity\xe2\x80\x99s Transfer() 或 send() 方法调用合约\xe2\x80\x99s后备函数,则它\xe2\x80\x99s接收到的气体量。1

\n
\n
\n

自推出以来,transfer() 通常受到安全社区的推荐,因为它有助于防范重入攻击。该指导意见在 Gas 成本不会改变的假设下是有意义的,但事实证明该假设是不正确的。我们现在建议避免使用transfer() 和send()。

\n
\n

在 中remix,有一条关于以下代码的警告消息:

\n
  (bool success, ) = recipient.call{value:_amount, gas: _gas}("");\n
Run Code Online (Sandbox Code Playgroud)\n

警告:

\n
Low level calls: Use of "call": should be avoided whenever possible. It can lead to unexpected behavior if return value is not handled …
Run Code Online (Sandbox Code Playgroud)

ethereum solidity

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

部署智能合约时如何设置所有者地址

这是简单的智能合约owner

pragma ^0.7.2

contract simple {
  address owner;

  constructor() public {
    //do something 
  }

  modifier() {
    require(
      owner == msg.sender,
      'No sufficient right'
    )
  }

  function setOwner() ownerOnly external {
     owner = msg.sender;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何安全地将所有者地址设置为智能合约所有者的地址?

ethereum solidity

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

jose 中是否有任何实用程序可以将 Ed25519 的密钥从 PEM 转换为 JWK?

Ed25519PEM密钥对生成如下:

-----BEGIN PRIVATE KEY-----
NC4CAQAwBQYcK2VwBCIEIIWUb0/MoKaBxQkmmPlHIGyPfDQb/U3D6jQ+gMUGtvpa
-----END PRIVATE KEY-----

-----BEGIN PUBLIC KEY-----
NCowBQYDK2VwAyEAWFnlEbTVgD4TilnSzyDmZK16dm1IeQURtHFcLhSwmDo=
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

在 中jose 3.11.1parseJwk接受JWK输入,用于生成用于签名和验证的密钥。将密钥jose转换为在第三方实用程序中使用或与第三方实用程序一起使用是否有实用程序?我没有找到一个项目。PEMJWKpaseseJwknodejs

jose

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

Factory_girl和Factory_girl_rails冲突错误

以下是运行rspec规范的错误消息:

/factory_girl-2.1.0/lib/factory_girl/registry.rb:38:in`add_as':已经定义:user(FactoryGirl :: DuplicateDefinitionError)

安装了factory_girl(2.1.0)和factory_girl_rails(1.2.0).如果删除factory_girl 2.1.0,则此错误消息将消失(导致另一个未定义方法的错误).但是,相同的设置在使用rspec的另一台笔记本电脑上运行没有问题.

这是bundle show命令输出的一部分.

  • 黄瓜(1.0.2)
    • 黄瓜栏杆(1.0.2)
    • database_cleaner(0.6.7)
    • 差异(1.1.2)
    • erubis(2.7.0)
    • execjs(1.2.4)
    • factory_girl(2.1.0)
    • factory_girl_rails(1.2.0)
    • ffi(1.0.9)
    • 小黄瓜(2.4.5)
    • 徒步旅行(1.2.1)
    • i18n(0.6.0)
    • jquery-rails(1.0.13)
    • json(1.5.3)
    • json_pure(1.5.3)
    • 邮件(2.3.0)
    • 哑剧型(1.16)
    • multi_json(1.0.3)
    • nokogiri(1.5.0)
    • 多语言(0.3.2)
    • 机架(1.3.2)
    • rack-cache(1.0.3)
    • 机架式(0.8.3)
    • rack-ssl(1.3.2)
    • 机架测试(0.6.1)
    • 铁轨(3.1.0)
    • 铁路(3.1.0)
    • 耙子(0.9.2)
    • rdoc(3.9.4)
    • rspec(2.6.0)
    • rspec-core(2.6.4)
    • rspec-expectations(2.6.0)
    • rspec-mocks(2.6.0)
    • rspec-rails(2.6.1)
    • rubyzip(0.9.4)
    • sass(3.1.7)
    • sass-rails(3.1.0.rc.6)
    • selenium-webdriver(2.4.0)
    • simple_form(1.4.2)

这是factory_girl和rspec的gemfile的一部分.

group :test do
  # Pretty printed test output
  gem "rspec-rails", ">= 2.0.0"
  gem "cucumber-rails", ">=0.3.2"
  gem 'webrat', ">= 0.7.2" 
  gem 'factory_girl_rails'
  gem 'turn', :require => false
end
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?谢谢.

rspec2 ruby-on-rails-3 factory-bot

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

<%= link_to_function"返回","history.back()"%>在new和edit.html.erb中不起作用

<%= link_to_function "Back", "history.back()" %>
Run Code Online (Sandbox Code Playgroud)

以上内容在new和edit.html.erb中不起作用.后面的链接指向它自己(/ new#或/ edit#)所以它实际上并没有回到任何地方.但是后退按钮在index.html.erb中有效.

查看后退按钮上的另一个stackoverflow帖子: Ruby on Rails中的"返回"浏览器操作

有什么想法吗?谢谢.

PS:类别控制器:

class CategoriesController < ApplicationController
  before_filter :require_signin
  before_filter :require_employee


  def index
    if session[:eng_dh]
      @categories = Category.all
    else
      @categories = Category.active_cate.all
    end

  end

  def new
    @category = Category.new

  end

  def create
    if session[:eng_dh] 
      #dynamic attr_accessible
      @category = Category.new(params[:category], :as => :roles_new)    

      if @category.save
        #@categories = Category.all
        redirect_to categories_path, :notice => 'Category was successfully created.' 

        # send out email
        #NotifyMailer.new_prod_email(@product).deliver
      else
        render :action => "new" 
      end
    end
  end

  def …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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