在第一次迁移时,我在列content上声明为字符串Activerecord根据annotate gem将其设置为字符串(255).
在我将应用程序推送到使用postgres的heroku后,如果我在内容中输入一个长度超过255的字符串,我会得到错误
PGError: ERROR: value too long for type character varying(255)
Run Code Online (Sandbox Code Playgroud)
问题是我需要内容包含一个非常长的字符串(自由文本,可能是数千个字符)
谢谢
string postgresql ruby-on-rails ruby-on-rails-3.1 rails-activerecord
作为PL/pgSQL的新手,这个函数中双美元符号的含义是什么:
CREATE OR REPLACE FUNCTION check_phone_number(text)
RETURNS boolean AS $$
BEGIN
IF NOT $1 ~ e'^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$' THEN
RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999';
END IF;
RETURN true;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
Run Code Online (Sandbox Code Playgroud)
我猜,在RETURNS boolean AS $$,$$是一个占位符.
最后一行有点神秘: $$ LANGUAGE plpgsql STRICT IMMUTABLE;
顺便说一句,最后一行是什么意思?
我有下表的柜台:
CREATE TABLE cache (
key text PRIMARY KEY,
generation int
);
Run Code Online (Sandbox Code Playgroud)
我想增加其中一个计数器,或者如果相应的行还不存在则将其设置为零.有没有办法在标准SQL中没有并发问题的情况下执行此操作?该操作有时是交易的一部分,有时是分开的.
如果可能的话,SQL必须在SQLite,PostgreSQL和MySQL上不加修改地运行.
搜索产生了一些想法,这些想法要么遇到并发问题,要么特定于数据库:
尝试换INSERT行,UPDATE如果出现错误.不幸的是,INSERT中止当前事务的错误.
UPDATE行,如果没有修改行,则为INSERT新行.
MySQL有一个ON DUPLICATE KEY UPDATE条款.
编辑:感谢所有的好评.看起来保罗是对的,并没有单一,便携的方式来做到这一点.这对我来说非常令人惊讶,因为它听起来像是一个非常基本的操作.
我有一个具有日期属性的ActiveRecord模型.是否可以使用该日期属性按年,日和月查找:
Model.find_by_year(2012)
Model.find_by_month(12)
Model.find_by_day(1)
Run Code Online (Sandbox Code Playgroud)
或者只是可以find_by_date(2012-12-1).
我希望我可以避免创建年,月和日属性.
activerecord ruby-on-rails ruby-on-rails-3 rails-activerecord
我在列中有逗号分隔的数据:
Column
-------
a,b,c,d
Run Code Online (Sandbox Code Playgroud)
我想将逗号分隔数据拆分为多个列以获得此输出:
Column1 Column2 Column3 Column4
------- ------- ------- -------
a b c d
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?
说,我们有这样的事情:
add_column :users, :single, :boolean
add_index :users, :single
Run Code Online (Sandbox Code Playgroud)
然后我们做
rename_column :users, :single, :married
Run Code Online (Sandbox Code Playgroud)
ActiveRecord和/或数据库是否也会处理索引的重命名,还是我必须手动删除索引并再次添加它?
activerecord ruby-on-rails database-indexes ruby-on-rails-3 rails-activerecord
平台:Mac OSX 10.6
在我的终端中,我使用"rails c"启动Ruby控制台
按照Ruby on Rails 3教程构建一个类:
class Word < String
def palindrome? #check if a string is a palindrome
self == self.reverse
end
end
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
TypeError: superclass mismatch for class Word
from (irb):33
from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
教程显示它没有问题,我知道代码很好; 我搜索了其他相关问题,但他们都涉及从Ruby 2迁移到3或erb vs eruby.
我想在if语句中测试一个bash函数返回值,如下所示:
if [[ func arg ]] ; then …
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息,如:条件二进制运算符预期.
这样做的正确方法是什么?
是吗:
if [[ $(func arg) ]] ; then ...
Run Code Online (Sandbox Code Playgroud) 我使用twitter-boostrap,我想在我的表单中使用这些单选按钮.问题是,当我点击任何这些按钮时,表格立即提交.怎么避免这个?我只想使用像单选按钮这样的默认按钮.
从:
<%= form_for @product do |f| %>
<div class="control-group">
<%= f.label :type, :class => 'control-label' %>
<div class="controls">
<div class="btn-group" data-toggle="buttons-radio">
<button class="btn">Button_1</button>
<button class="btn">Button_2</button>
</div>
</div>
</div>
<div class="form-actions">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to 'Cancel', products_path, :class => 'btn' %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
// application.js
$('.tabs').button();
Run Code Online (Sandbox Code Playgroud) 全部,我正在使用日期选择器的jQuery UI.我试图用javascript检查,但用户输入的日期是过去的.这是我的表单代码:
<input type="text" id="datepicker" name="event_date" class="datepicker">
Run Code Online (Sandbox Code Playgroud)
那么我如何用Javascript检查这一点以确保它不是过去的日期?谢谢
postgresql ×4
activerecord ×2
bash ×1
date ×1
delimiter ×1
dollar-sign ×1
function ×1
html ×1
javascript ×1
jquery ×1
jquery-ui ×1
mysql ×1
plpgsql ×1
quotes ×1
ruby ×1
split ×1
sql ×1
sqlite ×1
string ×1
upsert ×1
validation ×1