正常来说,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_ 前缀。
WordPress
def avatar
read_attribute(:avatar) || "'http://XXX/default.png'}"
end
Gemfile Gemfile.lock 的内容贴上来。
#5 楼 @torubylist 不行是什么不行,把日志贴上来,主动提供线索,不要让帮助你的人猜。