这是我使用我的代码的地方,我认为我很接近。
savetomongoid是一个将params数组推送到mongoid的def。
我正在使用activesupport用于复数和分类方法
route :get, :delete, :post, :put, '/*/*?/?*?' do |model, action, id|
case
when request.get?
case action
when "new"
haml '#{model}/new'
when "show"
instance_variable_set('@#{model}', model.classify.find(id))
haml '#{model}/show'
when "edit"
instance_variable_set('@#{model}', model.classify.find(id))
haml '#{model}/edit'
else
instance_variable_set('@#{model.pluralize}', model.classify.asc(made))
haml '#{model}/index'
end
when request.post? || request.put?
savetomongoid(model, params[model]) ? (redirect '/#{model}/') : (redirect '/#{model}/new')
when request.delete?
model.classify.find(id).delete ? (redirect '/#{model}/') : (puts "uhh ohh")
end
end
get '/*' do
haml :silence
end
当我尝试用任何路径加载它时,我得到一个完全空白的屏幕,没有源,但是localhost:#### /带我到我的haml:沉默所以一些路由正在工作。
三个splats应该把它的价值放入模型,动作,id。我尝试了某些东西/某些东西,我仍然得到无源页面。
假设splats和问号的模式通过https://github.com/sinatra/sinatra
上的自述文件起作用任何人都可以帮我一把吗?我几乎可以肯定这应该有效。
此外,是否有人可以建议一种方法来检查模型是否存在以过滤掉模型中任意事物的生成过程?
答案 0 :(得分:0)
您的案例陈述看起来很奇怪。
您正在测试request_method的结果,它将返回字符串“GET”,“PUT”,“POST”或“DELETE”对照请求的 get?,post?或者删除? 返回 true 或 false 的方法。
好像你总会在没有匹配的情况下拒绝案件陈述。
应该是:
route:get,:delete,:post,:put,'/ / ?/?*?' do | model,action,id |
case request.request_method
什么时候“GET”
...