我有一个嵌套的视图设置,可以在我的应用程序中得到一些深度.有很多方法我可以想到初始化,渲染和追加子视图,但我想知道常见的做法是什么.
这是我想到的一对夫妇:
initialize : function () {
this.subView1 = new Subview({options});
this.subView2 = new Subview({options});
},
render : function () {
this.$el.html(this.template());
this.subView1.setElement('.some-el').render();
this.subView2.setElement('.some-el').render();
}
Run Code Online (Sandbox Code Playgroud)
优点:您不必担心通过追加维护正确的DOM顺序.视图在早期初始化,因此在渲染函数中不会同时执行所有操作.
缺点:你被迫重新委托事件(),这可能是昂贵的?父视图的渲染函数与所有需要发生的子视图渲染混杂在一起?您无法设置tagName元素,因此模板需要维护正确的tagNames.
其他方式:
initialize : function () {
},
render : function () {
this.$el.empty();
this.subView1 = new Subview({options});
this.subView2 = new Subview({options});
this.$el.append(this.subView1.render().el, this.subView2.render().el);
}
Run Code Online (Sandbox Code Playgroud)
优点:您无需重新委派活动.您不需要仅包含空占位符的模板,并且您的tagName将返回由视图定义.
缺点:您现在必须确保以正确的顺序附加内容.子视图渲染仍然使父视图的渲染变得混乱.
有一个onRender事件:
initialize : function () {
this.on('render', this.onRender);
this.subView1 = new Subview({options});
this.subView2 = new Subview({options});
},
render : …Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以列出PostgreSQL数据库中的所有表并按大小排序?
伪代码
SELECT * FROM tables
ORDER by tables.size
Run Code Online (Sandbox Code Playgroud)
我在用PostgreSQL 9.3.2.
有没有办法更改标签顺序Vim(即更改标签栏中标签的位置)?例如,假设我当前的标签按此顺序排列:
A | B | C | D
Run Code Online (Sandbox Code Playgroud)
但我想将标签的位置切换为:
A | C | B | D
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想将局部变量(在模型中没有相关字段)传递给partial.
# infos/index.html.erb
<%= render :partial => 'info', :locals => {:info => first, :img_style => "original"} %>
Run Code Online (Sandbox Code Playgroud)
:img_style将是图像的html样式.
# infos/_info.html.erb
<% first = @infos.shift %>
<%= image_tag(info.image.url, :class => img_style), info %>
# and here goes code for normal iteration
<% @infos.each do |e| %>
# etc
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它返回错误:
# GET /infos/
undefined local variable or method `img_style' for #<#<Class:0xc471f34>:0xc470cc4>
Run Code Online (Sandbox Code Playgroud)
它可以在不做多余部分的情况下完成吗?
对不起我的英语不好.:P
编辑:
井模型信息没有:img_style字段
# db/schema.rb
create_table "infos", :force => true do |t|
t.string "title"
t.text "description"
t.integer "place_id" …Run Code Online (Sandbox Code Playgroud) 我使用Emacs,它有时会为已编辑的文件进行备份.几天后,我会有很多备份文件,其名称以波浪号结尾.
有没有办法找到这些文件并立即删除它们?
我试过这个:
find "*" -type f -iname *~
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我希望命令以递归方式工作 - 类似于ls -alR.
我想分割std::string的regex.
我在Stackoverflow上找到了一些解决方案,但是大多数都是通过单个空格或使用外部库(如boost)拆分字符串.
我不能用boost.
我想用正则表达式分割字符串 - "\\s+".
我正在使用这个g ++版本g++ (Debian 4.4.5-8) 4.4.5,我无法升级.
有没有办法在rails方法中清理sql find_by_sql?
我尝试过这个解决方案: Ruby on Rails:如何在不使用find时清理SQL的字符串?
但它失败了
Model.execute_sql("Update users set active = 0 where id = 2")
Run Code Online (Sandbox Code Playgroud)
它会抛出一个错误,但执行了sql代码,ID为2的用户现在已经禁用了帐户.
简单find_by_sql也行不通:
Model.find_by_sql("UPDATE user set active = 0 where id = 1")
# => code executed, user with id 1 have now ban
Run Code Online (Sandbox Code Playgroud)
编辑:
好吧,我的客户端要求在管理面板中创建该功能(由sql选择)以进行一些复杂的查询(连接,特殊条件等).所以我真的想find_by_sql那个.
第二编辑:
我想实现'邪恶的'SQL代码不会被执行.
在管理面板中,您可以键入query - > Update users set admin = true where id = 232,我想阻止任何UPDATE/DROP/ALTER SQL命令.只是想知道,在这里你只能执行SELECT.
经过一些尝试后,我总结说sanitize_sql_array不幸的是不这样做.
有没有办法在Rails中做到这一点?
对困惑感到抱歉..
我从http://www.vim.org/scripts/script.php?script_id=1658下载并手动安装了NERDTree
@hits ? .vim rvm:(-ruby-1.9.2) ls -laR
.:
total 28
drwxr-xr-x 6 hitsu hitsu 4096 2012-02-16 15:21 .
drwxr-xr-x 49 hitsu hitsu 4096 2012-02-27 17:43 ..
drwxrwxr-x 2 hitsu hitsu 4096 2011-12-28 14:18 doc
drwxrwxr-x 2 hitsu hitsu 4096 2011-12-28 14:17 nerdtree_plugin
-rw-rw-r-- 1 hitsu hitsu 283 2012-02-07 11:05 .netrwhist
drwxrwxr-x 2 hitsu hitsu 4096 2011-12-28 14:17 plugin
drwxrwxr-x 2 hitsu hitsu 4096 2011-12-28 14:17 syntax
./doc:
total 60
drwxrwxr-x 2 hitsu hitsu 4096 2011-12-28 14:18 .
drwxr-xr-x …Run Code Online (Sandbox Code Playgroud) 我正在使用PostgreSQL 9.5(但升级可以说是9.6).
我有权限表:
CREATE TABLE public.permissions
(
id integer NOT NULL DEFAULT nextval('permissions_id_seq'::regclass),
item_id integer NOT NULL,
item_type character varying NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
CONSTRAINT permissions_pkey PRIMARY KEY (id)
)
-- skipping indices declaration, but they would be present
-- on item_id, item_type
Run Code Online (Sandbox Code Playgroud)
3个表用于多对多关联
-companies_permissions(+指数声明)
CREATE TABLE public.companies_permissions
(
id integer NOT NULL DEFAULT nextval('companies_permissions_id_seq'::regclass),
company_id integer,
permission_id integer,
CONSTRAINT companies_permissions_pkey PRIMARY KEY (id),
CONSTRAINT fk_rails_462a923fa2 FOREIGN KEY …Run Code Online (Sandbox Code Playgroud) sql database postgresql one-to-many polymorphic-associations
我正在使用以下宝石和ruby-1.9.3-p194:
轨道3.2.3
rspec-rails 2.9.0
spork 1.0.0rc2
警卫队0.6.1
此Gemfile.lock或Gemfile中提供了已使用gems的完整列表.
我正在使用此配置文件:
如果我修改任何模型(或app/validators等等中的自定义验证器)重新加载代码不起作用.
我的意思是当我运行规格(在防守控制台上按Enter键)Spork包含"旧代码",我得到过时的错误消息.但是当我手动重启Guard和Spork(CTRC-C CTRL-d后卫)时,一切正常.但几次后它已经累了.
问题:
有人可以看看我的配置文件并修复阻止更新代码的错误.
或者这可能是最新Rails版本的问题?
PS这个问题在一些项目中重复并重复(在某些项目上).但我还没弄清楚为什么会发生这种情况.
PS2也许这个问题与此有关ActiveAdmin?当我在app/admin代码中更改文件时重新加载.
nerdtree ×2
postgresql ×2
sql ×2
vim ×2
activerecord ×1
backbone.js ×1
c++ ×1
database ×1
find-by-sql ×1
guard ×1
javascript ×1
linux ×1
locals ×1
one-to-many ×1
partial ×1
regex ×1
rspec ×1
split ×1
spork ×1
string ×1
tabs ×1