假设我在另一台机器上有一个存储库,其整个历史记录很大,可以在本地克隆.如果我无意将任何更改提交回该存储库,那么我就没有理由不能仅仅提取该提示的快照.有没有办法做到这一点,或者我会发现自己解决这个与rsync黑客或类似的东西?
如果它有帮助,在我的情况下,远程存储库由mercurial-server通过ssh隧道提供.
我在控制器中出现了这个:
if not session[:admin]
flash[:notice] = "You don't have the rights to do #{:action}."
redirect_to :action=>:index
return
end
Run Code Online (Sandbox Code Playgroud)
它的兄弟姐妹:
if not session[:user] and not session[:admin]
flash[:notice] = "You don't have the rights to do #{:action}."
redirect_to :action=>:index
return
end
Run Code Online (Sandbox Code Playgroud)
当我想在一个方法中使用它时,我想将这一切减少到一个声明性行:
def action_which_requires_rights
require_rights :admin
#or:
#:require_rights :user_or_admin
end
Run Code Online (Sandbox Code Playgroud)
显然,如果require_rights失败,我不希望执行其余的方法.我发誓有办法做到这一点,但我找不到我读到的地方.我在想这个吗?
我一直在组建一个小型的个人网站,并且已经达到我需要能够上传文件的程度.这是一项几乎无足轻重的任务,并且根本不花时间.
花时间 - 并且正在慢慢削弱我的理智 - 的任务是为用户提供上传进度条.我现在已经看过至少十几种解决方案,它们似乎都有一个共同点 - 它们需要在Web服务器上安装模块.
鉴于我无法控制我的服务器,并且托管公司似乎不太可能承诺安装任何此类动物,我有点束缚.让这真正令人抓狂的是,以任何方式,形状或形式将服务器置于此过程中是绝对不必要的.
想一想:您的浏览器打开了一个到远程服务器的套接字并开始发送数据.您的浏览器确切地知道要发送多少字节,并且由于TCP确认的神奇之处,还知道服务器端已经到达了多少字节.那么为什么在飞行意大利面的名称怪物是没有简单的方法将这些数据呈现给Javascript而没有充分利用爆破的服务器?
给定:
-record(foo, {a, b, c}).
Run Code Online (Sandbox Code Playgroud)
我做这样的事情:
Thing = #foo{a={1,2}, b={3,4}, c={5,6}},
Thing1 = Thing#foo{a={7,8}}.
Run Code Online (Sandbox Code Playgroud)
从语义视图来看,Thing和Thing1是唯一的实体.但是,从语言实现的角度来看,制作Thing的完整副本以生成Thing1将是非常浪费的.例如,如果记录的大小为兆字节,并且我制作了一千个"副本",每个修改了几个字节,那我就烧掉了一个千兆字节.如果内部结构跟踪父结构的表示,并且每个衍生物以指示其自身变化的方式标记该父项,但保留了每个elses的版本,则可以使用最小的内存开销来创建派生.
我的问题是:erlang在内部做任何聪明的事情 - 保持通常的erlang涂鸦的开销;
Thing = #ridiculously_large_record,
Thing1 = make_modified_copy(Thing),
Thing2 = make_modified_copy(Thing1),
Thing3 = make_modified_copy(Thing2),
Thing4 = make_modified_copy(Thing3),
Thing5 = make_modified_copy(Thing4)
Run Code Online (Sandbox Code Playgroud)
......到最低限度?
我问,因为如果是这种情况,我会进行跨进程通信的方式会有很多变化.
假设,作为管理流程的一部分,离线创建了数千个值。这些值被输入到一个非常简单的模型中:
class Foo(models.Model):
value = models.CharField(max_length=32)
Run Code Online (Sandbox Code Playgroud)
我想在模型创建页面上有一个字段,允许用户输入(复制粘贴)1000 个值,因此,将在表中创建 1000 行。
如果我可以在模型创建中添加一个文本字段,我所要做的就是解析这些值并为每个值调用 Foo.create。我将如何添加此自由格式字段,以及当用户点击“保存”按钮时我将如何处理它?……或者我应该采取完全不同的方式来解决这个问题吗?
我一直关注的rails书籍和网页都是为了提供完整的例子而坚持非常简单的项目.我正在从小型项目应用程序转移到非浏览器客户端领域,需要决定在何处放置所有相关方共享的代码.
非浏览器客户端是在可以连接到数据库的任何计算机上运行的脚本.浏览器客户端将命令写入数据库,脚本会检查并决定要执行的操作.完成后,脚本会将其结果写回.该脚本不是由RoR服务器启动的,但可以访问其目录结构.
哪里是共享代码生存的最佳位置,RoR加载器将如何处理它?有问题的代码并不真正属于模型,否则我会把它放在那里并完成它.
我有一个轨道应用程序,已经有点牵引力,但我有一个严重的头痛要处理.这是一种基本的资产管理应用程序 - 用户上传他们的照片,.pdfs,视频等,系统允许他们管理资产的呈现方式.
我开始使用相当标准的rails视图 - 这是由rails生成的 - 为index.html.erb.我有一个部分为每个资产呈现缩略图,如下所示:
<div id="preview"> </div>
Run Code Online (Sandbox Code Playgroud)
我想要的是缩略图是可点击的(很容易)但是当用户点击该按钮时,div的内容将被填充,好吧,基本上是edit.html.erb,但我猜它需要作为一个部分完成.我已经用直接的javascript管理了这个.
我可以访问新版"Agile Development on Rails"一书的出版前版本,任何人都可以通过该出版社获得该版本,但是关于AJAX的章节非常小,并且假定我拥有的这些东西比我更多,这就是我第一次涉足javascript和rails.
更新:回答"问题是什么"'回答',虽然我认为很清楚:
我需要在缩略图的部分内容中点击它来将编辑表单加载到div中?
我将environment.rb中的config.time_zone设置为"UTC",当我发出"select now();"时,我的mySQL服务器返回当地时区的当前时间.当我要求"select utc_timestamp"时,在utc中
我正在运行rails 2.1.2,mysql gem 2.7.3,activerecord gem 2.1.2和mysql --version返回"Ver 14.12 Distrib 5.0.27 for Win32(ia32)".
编辑:我的environment.rb设置为UTC,自从我启动项目以来.服务器重启不会发生任何变化.
record = Record.find(:first)
puts Time.now
# Tue Nov 25 17:40:48 -0800 2008
record.time_column = Time.now
record.save
mysql> select * from records;
---------------------
2008-11-26 01:40:48
#note that this is the same time, in UTC.
record = Record.find(:first)
puts record.time_column
Wed Nov 26 01:40:48 -0800 2008
#NOTE that this is eight hours in advance!
#All I've done is store a date in the database and retrieve …Run Code Online (Sandbox Code Playgroud) 我有一个Erlang应用程序,它有点太资源不足以留在一个节点上.我正在使gen_servers从一个进程转移到另一个进程 - 结果相对容易.我处于最后一个障碍:获取创建这些gen_servers的工厂进程以在远程节点而不是本地节点上生成它们.start_link的默认行为显然只在本地启动,但我没有看到任何更改它的选项.
似乎我必须要有创造力的解决方案,并想看看是否有人已经实现了这样的事情,并取得了任何成功.IOW,推荐的解决方案是什么?
编辑
我正在查看通过调用触发的调用链:
gen_server:start_link(?Module, Args, [])
Run Code Online (Sandbox Code Playgroud)
gen_server:START_LINK/3:
start_link(Mod, Args, Options) ->
gen:start(?MODULE, link, Mod, Args, Options).
Run Code Online (Sandbox Code Playgroud)
创:启动/ 5:
start(GenMod, LinkP, Mod, Args, Options) ->
do_spawn(GenMod, LinkP, Mod, Args, Options).
Run Code Online (Sandbox Code Playgroud)
创:do_spawn/5:
do_spawn(GenMod, link, Mod, Args, Options) ->
Time = timeout(Options),
proc_lib:start_link(?MODULE, init_it,
[GenMod, self(), self(), Mod, Args, Options],
Time,
spawn_opts(Options));
Run Code Online (Sandbox Code Playgroud)
proc_lib:START_LINK/5:
start_link(M,F,A,Timeout,SpawnOpts) when is_atom(M), is_atom(F), is_list(A) ->
Pid = ?MODULE:spawn_opt(M, F, A, ensure_link(SpawnOpts)),
sync_wait(Pid, Timeout).
Run Code Online (Sandbox Code Playgroud)
这最终让我们感到有趣.有一个匹配的spawn_opt/4:
spawn_opt(M, F, A, Opts) when is_atom(M), is_atom(F), is_list(A) ->
...
... …Run Code Online (Sandbox Code Playgroud) 我有一系列复选框和输入类型="文本"区域,其中我需要在文本区域中的值更改时将复选框的状态设置为true.很简单.我成功完成了这个:
<input name="fixed" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed.checked=true">
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.您必须编辑该字段然后单击它,但这对我的需求很好:
...但是当我切换到这个时:
<input name="fixed[0]" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed[0].checked=true">
<input name="fixed[1]" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed[1].checked=true">
Run Code Online (Sandbox Code Playgroud)
编辑时,我的复选框没有变化:
我唯一的javascript专有技术来自Google搜索这类东西,我很害怕.任何人都有关于此的更好的信息,而不是谷歌的谷歌谷歌存在?
谢谢...
javascript ×3
erlang ×2
ruby ×2
activerecord ×1
ajax ×1
arrays ×1
bulk ×1
client ×1
clone ×1
controller ×1
declarative ×1
distributed ×1
django ×1
erlang-otp ×1
gen-server ×1
internals ×1
loading ×1
memory ×1
mercurial ×1
methods ×1
model ×1
nodes ×1
onchange ×1
partials ×1
progress ×1
record ×1
shared ×1
time ×1
timezone ×1
upload ×1
views ×1