我的感觉是Camping和Sinatra之间的差异不是很大,你可以安全地选择其中任何一个并且没问题.但我想问问Ruby专家这是否属实.事实上,Sinatra和Camping微框架之间是否存在重大差异?你将如何决定使用哪一个?
在Camping中,如何最好地提供静态文件,例如css?
现在我有
class Style < R '/cards.css'
def get
@headers["Content-Type"] = "text/css"
File.read('cards.css')
end
end
Run Code Online (Sandbox Code Playgroud)
还有更聪明的方式涉及Rack吗?
我想在每个渲染的视图上出现一些视图,但是没有重复代码或违反规范,我似乎无法找到实现这一目标的方法.
这是我当前的代码,在每个视图中调用:
def ImOnABoat::Views
def layout
html do
head do title "Petstore" end
body do yield end
end
end
def navigation
p "Welcome to our tiny petstore!"
end
def poodle
navigation # Have to duplicate this in every view
p "We have a poodle!"
end
def fluffy_bunny
navigation # Have to duplicate this in every view
p "Come see-- OH CRAP IT'S A VELOCIRAPTOR!"
end
end
我也可以通过允许公共块在体外渲染来使其工作,但这违反了规范,并且最终可能会破坏一些刮刀脚本.
def layout def head do title "Petstore" end nav # This is not …
我正在尝试用露营制作一个简单的博客,就像野营一样,只是我想用haml来代替markaby.我想使用_post.html.haml部分渲染帖子,但我有一种感觉,我可能会以错误的方式去做.
Blog.rb
require 'camping'
Camping.goes :Blog
Blogtitle = "My Blog"
module Blog
# Path to where you want to store the templates
set :views, File.dirname(__FILE__) + '/views'
module Blog::Models
class Post < Base; belongs_to :user; end
class Comment < Base; belongs_to :user; end
class User < Base; end
end
module Blog::Controllers
class Index
def get
@posts = Post.find :all
render :index
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
意见/ index.html.haml
!!!
%html
%head
%meta{'http-equiv' => 'Content-Type', :content => 'text/html', :charset => 'UTF-8' }/ …Run Code Online (Sandbox Code Playgroud) 使用ruby,露营webframework,activerecord-2.1.1,我的db结构是......
create_table :Conf_posts do |t|
%w{title body username posttime hit passwd}.each do |col|
t.column :"#{col}", :string
end
end
Run Code Online (Sandbox Code Playgroud)
我想要每个用户名的总和
我有以下代码.
Post.find :all, :select => "username,sum(hit)", :from => "Conf_posts", :group => "username"
Run Code Online (Sandbox Code Playgroud)
我收到了以下结果.仅返回用户名:
[#<Conf::Models::Post username: "\352\260\225\355\230\201">, #<Conf::Models::Post username: "\353\215\225\352\267\234">, #<Conf::Models::Post username: "\353\225\214\355\230\270">, #<Conf::Models::Post username: "\353\263\264\353\236\214">, #<Conf::Models::Post username: "\354\230\201\352\262\275">, #<Conf::Models::Post username: "\354\232\260\353\236\214">, #<Conf::Models::Post username: "\354\235\270\354\204\235">, #<Conf::Models::Post username: "\354\240\225\355\231\224.">, #<Conf::Models::Post username: "\355\230\201\354\235\264">]
Run Code Online (Sandbox Code Playgroud)
我无法同时收到用户名和用户名的总和