如果你学的是 Web 开发
10 Ideas for Beginner Web Developers
https://medium.com/code-thinking/10-ideas-for-beginner-web-developers-2f725aed08d5
不理解你为什么不接着上贴问,新开一个帖子上个帖子讨论的线索就丢失了。
先写到页面里,如果多个地方要用再抽取出来。
#7 楼 @rubyu2 Matz 现在受雇于 Heroku(Salesforce 旗下),领导 Matz Team,这个团队用于专心开发推广 Ruby。所以 Ruby 有一个严肃的企业赞助商 Salesforce。
https://www.new-bamboo.co.uk/blog/2011/07/12/translation-of-matz-q-a-article-after-joining-heroku/
Mr Matsumoto (Matz going forward): When I last met Mr Marc Benioff (CEO of Salesforce.com) he asked me how he could support the development of Ruby.
So I told him that I want to improve the situation which the majority of Ruby Core developers face, that they are either doing their work in their own spare time or they worry about their job security.
He said he could provide us some support and that’s why I decided to join Salesforce.com through Heroku (Note: Several members of Ruby Core are currently under negotiation to join Heroku).
正常来说,get 和 post 应该有两个 action:
resources :users, only: [:new, :create]
# 等同于
get 'users/new', to 'users#new'
post 'users', to: 'users#create'
PS:如果你不用这种 Rails 默认的路由格式,就要在 form_for 加上 url
参数。
def new
@user = User.new
end
def create
@user = User.new(params.require(:user).permit(...))
if @user.save
# ...
else
render :new
end
end
此时表单页面文件名改为 new.html.erb
。
合在一个 action 也不是不可以,但不是 Rails 推荐的做法:
def register
if request.get?
@user = User.new
else
@user = User.new(params.require(:user).permit(...))
if @user.save
# ...
else
render :register
end
end
end
更多路由知识看官方文档 http://guides.ruby-china.org/routing.html
get 'users/register'
post 'users/register'
这里把 get 和 post 都路由到同一个 action 了,get 访问的时候就调用 user_params,这时候 params 是空的。应该把 get 和 post 的 action 分开。
PS:看的是什么书?
是我就 ping -c 10 -W 1
算了。
Controller 的内容贴全,routes.rb 也贴出来。
照着书本写到这里的时候不动了。
什么不动了?
问题出在哪里?
问题在哪里?
再把行号去掉,不然回答的人不能直接复制粘贴。
排版不合格。
七牛可以用它镜像功能,每次从源服务器抓取一次。Rails 里面 asset host 指向七牛的 CDN。
我没用过 MessageBug,你先把它移出 on page:change 如何?
You Might Not Need jQuery http://youmightnotneedjquery.com/
$.ajax({
type: 'POST',
url: '/my/url',
data: data
});
var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);
建议你用浏览器调试,看订阅通道打开了几次;打印日志看 callback 执行了几次。
我可能搞错了,MessageBus 只会订阅一次,重复订阅会关闭之前的订阅。
想想看微软所推出资料存取策略的历史吧。ODBC,RDO,DAO,ADO,OLEDB,还有最新的 ADO.NET -全部都是新生的!难道这些技术都是非要不可的吗?还是一个年年都在重新发明资料存取的无能设计团队的杰作呢?(这很可能是真正的答案。) 不过最终的结果却刚好成为火力掩护。它让竞争者别无选择,只能用尽所有时间进行移植和升级,没有时间去写新功能。仔细看看软体业界。成功的公司对大公司的依赖最少,不需要花所有工夫追随并重新实作,然后去修那些只出现在 Windows XP 上的问题。而跌跌撞撞的公司都花太多时间去揣测微软未来的方向。大家都担心.NET 的出现,认为有绝对必要所以决定针对.NET 重写整个架构。事实上微软是在对你开火,而且只是让他们前进并阻碍你们的掩护火力,因为这就是游戏规则,朋友。你想支援 Hailstorm 吗?SOAP 呢?RDF 怎么样?你支援这些东西是因为客户需要?还是因为有人对你开火而觉得应该有所反应呢?大公司的业务团队很了解火力掩护这一套。他们会去跟客户说「没错,你不一定要买我们的东西。要买就要买最好的。不过记得你买的产品一定要支援 (XML /SOAP / CDE / J2EE),否则你就会被绑住了。」然后当小公司试图接触这个客户时,这个听话的技术总监就会像鹦鹉一样说「你们支援 J2EE 吗?」尽管 J2EE 不会真正带来收入,他们还是得耗尽所有的时间加上 J2EE,结果完全没机会让产品产生区别。这是个勾选项目,会去做只是因为需要有个项目打勾表示你也有,不过没有人会用也没有人需要。而这就是掩护火力。
Tubolinks 开启的时候资源不会释放,on page:change 就是每次换页都重复订阅。
我觉得可以考虑贡献 https://github.com/gollum/gollum
#4 楼 @noob 如果不是 Rails 环境,可以直接操作 Memcached
https://github.com/mperham/dalli
require 'dalli'
dc = Dalli::Client.new
dc.fetch 'cache_key', expires_in: 300 do
# code
end
我会给 FooHelper
的方法全都加上 foo_
前缀。