小编Mic*_*eal的帖子

ruby on rails在特定列名后添加一列

我试图在表格中的特定列之后向表中添加一列.这是我做的:

rails generate migration add_reaction_id_to_patient_allergies reaction_id: integer :after => 'patient_id'
Run Code Online (Sandbox Code Playgroud)

这是我的迁移文件的样子:

class AddReactionIdToPatientAllergies < ActiveRecord::Migration
  def change
    add_column :patient_allergies, :reaction_id, :string
    add_column :patient_allergies, :integer, :string
    add_column :patient_allergies, :, :after
    add_column :patient_allergies, :=, :string
  end
end
Run Code Online (Sandbox Code Playgroud)

我不认为命令进展顺利.我在上面的文件中看到了'='.我不认为应该在那里.有人可以告诉我,如果我错过了什么?

如果是这样,我该如何撤消上述内容?

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

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

圆数到小数点后2位

我需要将数字四舍五入到小数点后两位.现在以下几轮到我猜的最接近的整数

puts [expr {round($total_rate)}]
Run Code Online (Sandbox Code Playgroud)

如果我做下面的事情就行不通.还有另外一种方法吗?

puts [expr {round($total_rate,2)}]
Run Code Online (Sandbox Code Playgroud)

tcl rounding

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

ruby on rails为oracle视图/函数准备语句

我有以下代码执行oracle视图,如下所示:

def run_query
    connection.exec_query(
      "SELECT * FROM TABLE(FN_REQRESP(#{type_param},
                                      #{search_type_param},
                                      #{tid_param},
                                      #{last_param},
                                      #{key_param},
                                      #{tran_id_param},
                                      #{num_param},
                                      #{start_date_param},
                                      #{end_date_param}))")
end
Run Code Online (Sandbox Code Playgroud)

上述查询的输出如下:

SELECT * FROM TABLE(FN_REQRESP('ALL',
 'ALL_TRAN',
 '100007',
 '',
 '',
 '',
 '',
 TO_DATE('27-January-2017','dd-MON-yy'),
 TO_DATE('31-January-2017','dd-MON-yy'))) 
Run Code Online (Sandbox Code Playgroud)

问题是上面的查询有一个SQL注入漏洞.

所以,我试着添加一个prepare语句如下:

 connection.exec_query('SELECT * FROM TABLE(FN_REQRESP(?,?,?,?,?,?,?,?,?))','myquery',[type_param,search_type_param,tid_param,last_param,key_param,tran_id_param,num_param,start_date_param,end_date_param])
Run Code Online (Sandbox Code Playgroud)

我现在收到以下错误:

NoMethodError:未定义的方法`type'表示"'ALL'":字符串:SELECT*FROM TABLE(FN_REQRESP(?,?,?,?,?,?,?,?,?))

这是单引号搞砸了我相信.有办法克服这个问题吗?

编辑:我尝试了NDN的答案和错误如下:

OCIError: ORA-00907: missing right parenthesis: SELECT * FROM TABLE(FN_REQRESP('\'ALL\'',
                                      '\'ALL_TRAN\'',
                                      '\'100007\'',
                                      '\'\'',
                                      '\'\'',
                                      '\'\'',
                                      '\'\'',
                                      'TO_DATE(\'01-February-2017\',\'dd-MON-yy\')',
                                      'TO_DATE(\'10-February-2017\',\'dd-MON-yy\')'))
Run Code Online (Sandbox Code Playgroud)

ruby sql oracle prepared-statement ruby-on-rails-3

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

定义和循环数组tcl

我需要一些帮助来定义数组,并在TCL中显示和循环它们.

这是我将如何在PHP中执行它们.

$date =array();
$size=0;
$date[$size] =$pre_event_date;
/* After doing some manpulation and calculations with $size */
for($i=0;$i<=$size;$i++){
    echo $date[$i];
}
Run Code Online (Sandbox Code Playgroud)

我想对tcl执行相同的操作.以下代码是否合适?

set size 0
set date[$size] $pre_event_date
#After performing some manipulation
for {set i 0} { $i <=$size } {incr i} {
    puts "$date[$i]";
}
Run Code Online (Sandbox Code Playgroud)

我也可以将set $ date定义为数组.有些人喜欢:

set date array();
Run Code Online (Sandbox Code Playgroud)

所以我编辑了我的代码尝试使用RSeeger的数组实现的简单测试:

set date(0) 35
set date(1)  40
foreach key [array names date]{
   puts "${key}=$date($key)"
}
Run Code Online (Sandbox Code Playgroud)

上面没有返回任何可能有一些错误.我也试过:把$ date($ key)放在没有引号的情况下,但这也不起作用.

tcl

6
推荐指数
2
解决办法
3万
查看次数

在控制台中打印javascript变量的值

我有一个存储一些值的javascript变量:

我可以在firebug或某处回复它以查看存储的值.

var p = user.permissions;
Run Code Online (Sandbox Code Playgroud)

我正在使用extjs3.

extjs3

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

ruby open ssl api for encrypted key(without nodes option)

在安装了openssl lib的linux机器上,当您使用"-nodes"选项执行"openssl pkcs12"时,您将获得未加密的私钥输出,但如果跳过-nodes选项,则输出将具有加密的私钥.

     e.g.
             openssl pkcs12 -in test.pfx -out test.pem 
Run Code Online (Sandbox Code Playgroud)

您应该看到加密的私钥如下所示

-----开始
加密的私人密钥----- MIIFDjBABgkqhkiGG7s =
-----结束加密的私钥-----

如何使用ruby的open ssl库实现上述功能?

这就是我用ruby生成私钥的方法:

    @private_key = OpenSSL::PKey::RSA.new 2048
    @private_key.to_pem.to_s
Run Code Online (Sandbox Code Playgroud)

编辑:

我想我的问题是这个命令如何加密私钥:

openssl pkcs12 -in test.pfx -out test.pem

然而:

"openssl pkcs12 -nodes -in test.pfx -out test.pem"

才不是.如何使用ruby获得相同的结果?

ruby encryption ssl openssl ruby-on-rails

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

undefined方法每个rails错误

我通过位于http://ruby.railstutorial.org的教程在轨道上尝试ruby .我到了可以创建用户的位置,并显示了他们的名字和gravatar:

http://localhost:3000/users/1
Run Code Online (Sandbox Code Playgroud)

现在我想在用户访问时显示所有用户:

http://localhost:3000/users/
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

class UsersController < ApplicationController

  def index
    @user = User.all
  end      

  #...
end
Run Code Online (Sandbox Code Playgroud)

这是我的看法.

#View for index action in user's controleer

<h1>All users</h1>

<ul class="users">
  <% @users.each do |user| %>
    <li><%= user.content %></li>
  <% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

undefined method `each' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么索引页面不能正常工作.

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

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

为什么rails在insert语句中手动指定主键ID?

我使用rails has_many_belongs_to_many关联如下:

class MemberRole < ActiveRecord::Base
  attr_accessible :org_id, :name, :permission_ids
  has_and_belongs_to_many :permissions
end

class Permission < ActiveRecord::Base
  has_and_belongs_to_many :member_roles
end
Run Code Online (Sandbox Code Playgroud)

我的联接表如下:

CREATE TABLE MEMBER_ROLES_PERMISSIONS
( member_role_id NUMBER(38,0) NOT NULL REFERENCES member_roles,
  permission_id NUMBER(38,0) NOT NULL REFERENCES permissions
);
Run Code Online (Sandbox Code Playgroud)

当我尝试创建新记录时,如下所示:

role = MemberRole.create(name: role_params["name"], org_id: role_params["org_id"], permission_ids: role_params["permission_ids"])
Run Code Online (Sandbox Code Playgroud)

INSERT INTO"MEMBER_ROLES"("ID","NAME","ORG_ID")VALUES(:a1,:a2,:a3)[["id",66],["name","test100"],[" org_id","2"]]

插入"MEMBER_ROLES_PERMISSIONS"("MEMBER_ROLE_ID","PERMISSION_ID")值(66,8)

上述方法的问题是我的member_roles表具有如下创建的序列和触发器:

CREATE SEQUENCE MEMBER_ROLES_SEQ;

set define off;
CREATE OR REPLACE TRIGGER member_roles_bir 
BEFORE INSERT ON MEMBER_ROLES 
FOR EACH ROW

BEGIN
  SELECT MEMBER_ROLES_SEQ.NEXTVAL
  INTO   :new.id
  FROM   dual;
END;
Run Code Online (Sandbox Code Playgroud)

由于上面的内容,插入表内的"ID"是67而不是66.

rails是否应该尝试手动插入id?有没有办法告诉rails不处理id插入并让oracle触发器处理它?

ruby oracle ruby-on-rails ruby-on-rails-3 rails-activerecord

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

react_on_rails安装:纱线是必需的错误

我正在尝试按照以下说明为现有的rails 5.0 app设置react_on_rails:https: //github.com/shakacode/react_on_rails

  1. gem"react_on_rails","8.0.0"
  2. rails生成react_on_rails:安装

我收到以下错误:

ERROR: yarn is required. Please install it before continuing. https://yarnpkg.com/en/docs/install
Run Code Online (Sandbox Code Playgroud)

现在这是我的纱线,npm和节点路径:

[user@server]$ which node
/usr/bin/node
[user@server]$ which npm
/usr/bin/npm
[user@server]$ which yarn
~/.yarn/bin/yarn
Run Code Online (Sandbox Code Playgroud)

我如何确保使用合适的纱线并帮助安装react_on_rails?

编辑:这是我的〜/ .bashrc文件:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"


export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

export PATH="$PATH:$HOME/.yarn/bin"
Run Code Online (Sandbox Code Playgroud)

这是我的app下的/ bin/yarn文件:

#!/usr/bin/env ruby
VENDOR_PATH = File.expand_path('..', __dir__)
Dir.chdir(VENDOR_PATH) do
  begin
    exec …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails node.js reactjs yarnpkg

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

extjs4显示工具提示按钮单击而不是鼠标悬停

我想在下面的工具提示中添加一个点击监听器.我不希望工具提示在鼠标悬停时显示.相反,它需要在点击按钮时显示.我是否必须在侦听器中添加处理函数?

{
                    xtype: 'button',
                    cls:'my-btn',
                    iconCls:'question',                     
                    src:'../www/css/slate/btn/question.png',
                    padding: '5 0 0 0',

                    listeners: {


                        render: function(cmp) {
                            Ext.create('Ext.tip.ToolTip', {
                                closable:true,
                                hideDelay : 3000,
                                padding: '0 0 0 0',
                                maxWidth:400,
                                width:800,

                                target: cmp.el,
                                html: "<b>read-only</b>:Users will have read only access to all pages",
                                getTargetXY: function() {
                                    return [810, 340];
                                }
                            });
                        }

                    }


                },
Run Code Online (Sandbox Code Playgroud)

javascript extjs tooltip extjs4.1

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