Tag: sinatra

使用ruby和datamapper检索具有多对多关联的记录

我正在学习Sinatra,我已经阅读了datamapper文档并找到了这个n到n的关系示例: class Photo include DataMapper::Resource property :id, Serial has n, :taggings has n, :tags, :through => :taggings end class Tag include DataMapper::Resource property :id, Serial has n, :taggings has n, :photos, :through => :taggings end class Tagging include DataMapper::Resource belongs_to :tag, :key => true belongs_to :photo, :key => true end 我从上面的代码中理解的是,一张照片可能有很多或零标签,而标签可能有很多或零照片。 如何检索已加载相关标签的照片列表。 我知道datamapper使用惰性方法,因此它不会自动加载关联的类(在本例中为photo.tag)。 所以这: photos […]

mootools手风琴不工作

我一直想试试手风琴对mootools的效果,但是我无法让它起作用,就像js根本没有加载 这是HTML代码 BarDiJan – We Deliver What we Do We are people who deliver professional quality identity to you, we have wide range of support. What we Did Under Construction What we Offer Web Design Identity 这是application.js代码 windows.addEvent(‘domready’, function() { var accordion = new Accordion($$(‘h3.toggler’),$$(‘div.element’), { display: 2, opacity: false, alwaysHide: true, onActive: function(toggler) { […]

Sinatra Ruby在散列中迭代数组以将jQuery Sortable发送到数据库

我已经把我缺乏的知识分解为这个片段,我一直在调整irb。 我正在尝试使用jQuery的UI Sortable将post发送到数据库,到目前为止我可以让它发送更新,但它一次发送整个数组而不是每个数组项。 令人惊讶的是,我还没有找到一个人试过Sinatra和Sortable的post。 嗯 哈希和sinatra代码 superslide = {“weee”=>[“3”, “4”, “1”, “2”]} moo = Sort.all moo.each do |o| o.sortorder = superslide[‘weee’] puts o.sortorder end #Output 3412 3412 3412 3412 在上面你可以看到它为每个循环将数组值分成一行。 我知道我缺少一个Ruby基本的东西。 下面是我最终希望克隆到Sinatra的Rails等价物,但是那里的小东西也搞砸了 .index(book.id.to_s) + 1 抛出一个错误,我想因为它是一个字符串,我试过to_i但它只编辑了同一组数字。 Rails代码翻译 def sort @books = Book.all @books.each do |book| book.position = params[‘book’].index(book.id.to_s) + 1 book.save end http://practiceovertheory.com/blog/2009/08/07/sortable-lists-with-jquery-in-rails/ 我也测试了如何在哈希中迭代数组,原谅不同的名称,我有很多测试路由,我现在无法用测试代码。 slideNum.sortorder […]

使用RSpec测试Datamapper模型

我正在使用RSpec测试一个使用DataMapper的Sinatra应用程序。 以下代码: it “should update the item’s title” do lambda do post “/hello/edit”, :params => { :title => ‘goodbye’, :body => ‘goodbye world’ } end.should change(Snippet, :title).from(‘hello’).to(‘goodbye’) end 导致此错误: title应该最初是“hello”,但是#DataMapper :: Property :: String @ model = Snippet @ name =:title> 我当然可以通过删除lambda来解决这个问题,并且只检查是否: Snippet.first.title.should == ‘goodbye’ 但这不是一个长期解决方案,因为.first Snippet在未来可能不一样。 有人能告诉我正确的语法吗? 谢谢。

使用webrat对sinatra app进行验收测试失败

我正在尝试使用minitest和webrat测试ruby身份validation应用程序但是会出错。 visit ‘/’等测试失败,错误Status 200 expected but was 404. 包含fill_in :email, :with => “first@company.com”等代码的测试失败并显示错误Could not find field: :email 。 我读了几本sinatra,测试和webrat文档和论坛。 其中一些是旧的,并建议像Sinatra :: Default,但github.com/brynary/webrat/wiki/sinatra , 建立一个由Webrat测试和大师学习 驱动的Sinatra应用程序 :Sinatra内部是新的,但他们仍然失败。 基本上,我不喜欢rspec,黄瓜等句子般的语法,但确实想做行为驱动的开发。 我真的很喜欢最小的语法,包括测试和输出,这就是我为BDD选择webrat的原因。 如果我错过了期望webrat满足验收测试要求,请告诉我我应该使用这个框架或那个框架。 除此之外,主文件和测试文件的第一部分如下。 我希望有人可以解释我,我错过了什么? test_file里面 require “test/unit” require “minitest/autorun” require “rack/test” require ‘webrat’ require_relative “../lib/kimsin.rb” Webrat.configure do |config| config.mode = :rack end ENV[“RACK_ENV”] = “test” class KimsinTests “first@company.com” […]

无法通过last_response读取Rspec 3中的cookie

我试图在Rspec 3.1中读取一个在接到电话后收到的cookie。 我看到它被返回但是last_response.cookies不存在。 我怎样才能阅读回复的cookie? it “doesn’t signs in” do get ‘/ui/pages/Home’ puts last_response.cookies end

使用em-http-request无法获得性能

我试图了解如何在Ruby中使用各种非阻塞IO库,并使用Sinatra制作一个简单的应用程序进行测试, # proxy.rb require ‘bundler/setup’ require ‘sinatra/base’ require ‘sinatra/synchrony’ require ‘faraday’ class ProxyApp < Sinatra::Base register Sinatra::Synchrony get "/proxy" do conn = Faraday.new("http://mirror.yandex.ru") do |faraday| faraday.use Faraday::Adapter::EMSynchrony end conn.get "/ubuntu-releases/precise/ubuntu-12.04.1-alternate-i386.iso" "Hello, world" end get "/" do "Hello, world" end end 据我所知,使用非阻塞IO下载文件应允许其他请求执行,但它不会 – 如果我使用ab打开/proxy路径(我使用Thin作为应用服务器),请求/需要很长时间。 难道我做错了什么?

使用Webrat进行测试时如何处理cookie?

我正在使用Webrat为基于Sinatra的应用程序编写Cucumber测试。 对于某些测试,我需要实现一个类似的场景 Given I am logged in as admin When I am visiting “/” Then I should see “Settings” 我定义了这样的步骤: Given /^I am logged in as “(.+)”$/ do |user| visit “/login” fill_in “login”, :with => user fill_in “password”, :with => “123456” click_button “Login” end When /^I am viewing “(.+)”$/ do |url| visit(url) end Then /^I […]

与Pony和Sinatra一起发送邮件

我正试图从sinatra中的Pony Gem发送一封联系表格(内置HTML)的电子邮件,我已按照文档进行操作,但必须遗漏一些内容。 这是Pony配置 get ‘/contact’ do erb :contact, :layout => :layout end post ‘/contact’ do require ‘pony’ Pony.mail({ :from => params[:name], :to => ‘myemailaddress’, :subject => params[:name] + “has contacted you via the Website”, :body => params[:comment], :via => :smtp, :via_options => { :address => ‘smtp.gmail.com’, :port => ‘587’, :enable_starttls_auto => true, :user_name => ‘myemailaddress’, […]

允许其他人通过亚马逊实例查看您的Sinatra本地服务器

这很难解释。 但基本上,我有一个亚马逊实例,我想ssh到它并使用sinatra在其上运行本地服务器。 所以我会ssh到亚马逊实例,git克隆我的回购,并运行ruby config.ru。 然后我希望其他人能够看到正在运行的确切本地服务器。 我做的一件事是添加了一个安全组,端口4567 HTTP,以便我可以通过公共DNS访问它。 它适用于机架应用程序,但它不适用于sinatra,我甚至尝试了一个’hello world’示例应用程序,试图让它工作。