self.class.send :method, args...当然不是.我想在类和实例级别上创建一个相当复杂的方法,而不需要复制代码.
更新:
@Jonathan Branam:这是我的假设,但我想确保没有其他人找到方法.Ruby中的可见性与Java中的可见性非常不同.你也很正确,private它不适用于类方法,虽然这将声明一个私有类方法:
class Foo
class <<self
private
def bar
puts 'bar'
end
end
end
Foo.bar
# => NoMethodError: private method 'bar' called for Foo:Class
Run Code Online (Sandbox Code Playgroud) 我有一些代理设置,我偶尔会想要打开,所以我不想把它们放在我的~/.bash_profile.我试图把它们直接~/bin/set_proxy_env.sh,添加~/bin到我的PATH,和chmod +x荷兰国际集团的脚本,但尽管脚本运行时,该变量并不在我的壳粘.有谁知道如何让他们留在shell会话的其余部分?
本文提出了一个非常有说服力的论点,因为URL是长期存在的(它们被加入书签并传递),它们应该是有意义的,并且使用哈希进行实际路由(确定页面上显示的数据和/或状态)因此,不适当的.当我尝试在我的单页应用程序中实际执行此操作时,我遇到了一个问题:如何渲染我的链接以便所有浏览器都可以使用该应用程序?我认为,有三种选择:
href都有一个#/前缀.这在HTML4浏览器中非常有用.在HTML5浏览器中,我可以添加一个重定向到无哈希版本的Sammy路由,这也很有用.浏览器将链接标记为已访问时可能存在问题,因为它们不是标记或未标记它们.另一个问题是它错了.通过右键单击并选择"复制链接URL"来共享链接的任何人都将发送一个工作但很糟糕的URL.href■找一个#/前缀.据我所知,HTML4浏览器无法拦截这些链接点击,这意味着每个浏览器都会导致页面刷新.虽然应用程序可能会仍然起作用,因为我可以用萨米路线改写hashless版本hashy在页面加载的,页面加载会杀单页应用程序的性能.#/.这意味着我的所有链接都必须具有动态标记,并使应用程序大大复杂化.我正在考虑为Flash做一些开发.我需要购买昂贵的商业工具还是有一些FOSS工具我可以开始使用?显然,有很多工具,但它们是否足以完成工作?避免使用商业或官方工具会让我失去什么?
我正在使用Rails开始一个项目的工作,但是我正在等待第三版实用的rails book在我购买一本书之前出来.
无论如何,我的问题比我如何开始有点尖锐......
每个人都使用的必备宝石是什么?
我需要基本的身份验证,所以我有一个宁静的身份验证宝石,但除此之外,我不知道我不知道.这个信息在哪里崩溃了吗?99%的人在开始新的rails应用程序时开始的一些基本设置?
提前致谢.
我有一个响应HTML和JS(AJAX)查询的FooController:
# app/controllers/foo_controller.rb:
class FooController < ApplicationController
layout 'foo'
def bar
respond_to do |format|
format.html # foo/bar.html.erb
format.js # foo/bar.js.erb
end
end
end
Run Code Online (Sandbox Code Playgroud)
支持它的模板:
# app/views/layouts/foo.html.erb:
<html>...<%= yield %>...</html>
# app/views/layouts/foo.json.erb:
<%= yield %>
Run Code Online (Sandbox Code Playgroud)
还有一个我要渲染部分的AJAX模板:
# app/views/foo/bar.js.erb:
dojo.byID('some_div').innerHTML = "<%= escape_javascript(render(:partial => 'some/partial')) %>";
Run Code Online (Sandbox Code Playgroud)
如果JS模板中只有普通的旧JS(比如alert('hi');),它使用我的JS模板.但是,当我放入render(:partial)时,它会使整个响应使用HTML模板,这意味着它不再是有效的JS.
一种可能的解决方案是使用布局函数:
class FooController < ApplicationController
layout :choose_layout
...
private
def choose_layout
return nil if request.xhr?
'foo'
end
end
Run Code Online (Sandbox Code Playgroud)
但我的版本应该工作!为什么不呢?
我正在试图弄清楚如何使用我的应用程序处理无效路由Ember.Router.
目前,如果我输入无效路线,例如myapp.com/#FooBarDoesntExist,它将重定向到索引路线('/').我想要它,如果我可以定义一个notFound或404状态,它将路由到所以我可以通知用户发生了什么.而不是他们被倾倒在主页上.
我有一个大型应用程序(约50个模块)使用类似于以下的结构:
我想将应用程序导入Maven和Subversion.经过一些研究后,我发现存在两种实用的方法.
一个是使用树结构,就像前一个一样.这种结构的缺点是你需要大量的调整/黑客才能使多模块报告与Maven一起工作.另一个缺点是在Subversion中,标准的trunk/tags/branches方法为存储库增加了更多的复杂性.
另一种方法使用扁平结构,其中只有一个父项目,所有模块,子模块和子模块部分都是父项目的直接子项.这种方法适用于报告,并且在Subversion中更容易,但是我觉得我这样失去了一些结构.
从长远来看,你会选择哪种方式?为什么?
我可以
sudo gem rdoc activerecord --no-ri
Run Code Online (Sandbox Code Playgroud)
和
sudo gem rdoc actionpack --no-ri
Run Code Online (Sandbox Code Playgroud)
这两个都给了我很好的文档.
但
sudo gem rdoc rails --no-ri
Run Code Online (Sandbox Code Playgroud)
因为Rails宝石本身只是其他人的持有者,所以几乎没有给我任何东西.如何生成相应的http://api.rubyonrails.org/?
ruby ×5
javascript ×2
actionscript ×1
api ×1
bash ×1
class-method ×1
ember.js ×1
erb ×1
flash ×1
html5 ×1
java ×1
macos ×1
maven-2 ×1
open-source ×1
rdoc ×1
refactoring ×1
rubygems ×1
scope ×1
singlepage ×1
svn ×1
terminal ×1
url ×1
visibility ×1