我可以创建一个索引来加速数组操作。
create table test_array as
select id, array[id, id+1, id+2]::text[] as codes
from generate_series(1, 10000) as id;
create index test_array_idx on test_array using GIN (codes);
explain analyze
select * from test_array where codes @> array['123'];
-- Uses "Bitmap Index Scan on test_array_idx"
Run Code Online (Sandbox Code Playgroud)
但是,索引不适用于整数数组。
create table test_intarray as
select id, array[id, id+1, id+2] as codes
from generate_series(1, 10000) as id;
create index test_intarray_idx on test_intarray using GIN (codes);
explain analyze
select * from test_intarray where codes @> array[123];
-- Uses "Seq …Run Code Online (Sandbox Code Playgroud) respond_to在Rails 中使用而不是case语句有什么好处?我有几个实例变量,我想为某些格式设置相同的方式,但不是HTML.这似乎不起作用:
respond_to do |format|
format.html do
# ...
end
format.any(:csv, :xml) do
# common stuff
end
format.csv do
# ...
end
format.xml do
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
我想我最终会使用一些case request.format而不是完全使用respond_to:
case request.format
when 'html'
# ...
when 'csv', 'xml'
# common stuff
end
# more common stuff
case request.format
when 'html'
# render
when 'csv'
# custom render csv
when 'xml'
# render xml with a template
end
Run Code Online (Sandbox Code Playgroud)
所以我想知道什么是好的用例respond_to,哪里case request.format看起来不会更好?
我在目录中放置了rack_app.rb带有简单Rack应用程序的lib文件:
class RackApp
def call env
[200, {}, 'Hello']
end
end
Run Code Online (Sandbox Code Playgroud)
然后我添加了这条路线:
match 'rack' => RackApp
Run Code Online (Sandbox Code Playgroud)
当我尝试启动rails服务器时,我收到以下错误:
config/routes.rb:65: uninitialized constant RackApp (NameError)
我在两个不同的帮助器中创建了辅助函数(link_to_alert)
现在,打电话给我的助手功能link_to_alert从app/views/student/index.html.haml
问题是调用相同函数的视图 app/helpers/posts_helper.rb
如何app/helpers/students_helper.rb从我的 app/views/student/index.html.haml视图中调用辅助函数?
例如,这个简单的程序:
Program Helloworld;
Begin
writeln ('Hello world!');
readln;
End;
Run Code Online (Sandbox Code Playgroud)