小马参考在几个地方:
我缺少文化参考吗?与小马有什么关系?
我是这三个人的新手,我正在尝试为网站写一个简单的联系表格.我提出的代码如下,但我知道它存在一些基本问题(由于我对sinatra缺乏经验).得到这个工作的任何帮助将不胜感激,我似乎无法弄清楚/找到这类事情的文档.
来自联系页面的haml代码:
%form{:name => "email", :id => "email", :action => "/contact", :method => "post", :enctype => "text/plain"}
%fieldset
%ol
%li
%label{:for => "message[name]"} Name:
%input{:type => "text", :name => "message[name]", :class => "text"}
%li
%label{:for => "message[mail]"} Mail:
%input{:type => "text", :name => "message[mail]", :class => "text"}
%li
%label{:for => "message[body]"} Message:
%textarea{:name => "message[body]"}
%input{:type => "submit", :value => "Send", :class => "button"}
Run Code Online (Sandbox Code Playgroud)
这是我在sinatra的app.rb中的代码:
require 'rubygems'
require 'sinatra'
require 'haml'
require 'pony'
get '/' do
haml :index
end
get …Run Code Online (Sandbox Code Playgroud) 我使用Pony邮件发送电子邮件(因为我永远无法让ActionMailer在我的本地Windows机器上工作).
我的user_mailer.rb文件中的代码包含对Pony.mail方法的调用:
Pony.mail({
:to => email_address,
:from => 'MyChairSales <support@mychairsales.com>',
:subject => subject,
:body => email_body,
:html_body => html_body,
:via => :smtp,
:via_options => {
:address => 'mail.mychairsales.com',
:port => '25',
:enable_starttls_auto => true,
:user_name => 'mychairs',
:password => 'thepassword',
:domain => "mychairsales.com" # the HELO domain provided by the client to the server
}
})
Run Code Online (Sandbox Code Playgroud)
这是有效的(我已经使用此方法收到了电子邮件),但现在失败了,错误"主机名与服务器证书不匹配".
这是堆栈跟踪的顶部:
["/usr/lib64/ruby/1.9.3/openssl/ssl-internal.rb:121:in `post_connection_check'",
"/usr/lib64/ruby/1.9.3/net/smtp.rb:585:in `tlsconnect'", "/usr/lib64/ruby/1.9.3
/net/smtp.rb:560:in `do_start'", "/usr/lib64/ruby/1.9.3/net/smtp.rb:519:in `start'",
"/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib/mail/network/delivery_methods
/smtp.rb:144:in `deliver!'", "/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib
/mail/message.rb:245:in `deliver!'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib
/pony.rb:166:in `deliver'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib
/pony.rb:138:in `mail'", "/home4/mychairs/rails_apps/chairsales/app/mailers …Run Code Online (Sandbox Code Playgroud) 我发现这个宝石是一种发送邮件的好方法,但我似乎无法发送任何HTML.如果我写下面的内容:
Pony.mail(
:to => message[:to],
:from => @account[:from],
:subject => message[:subject],
:content_type => 'text/html',
:html_body => "<h1>hey there!</h1>",
:via => :smtp,
:smtp => {
:host => MY_HOST,
:port => PORT,
:auth => AUTH,
:user => MY_USER,
:password => MY_PASSWORD,
:tls => true } )
Run Code Online (Sandbox Code Playgroud)
上面的代码发送邮件但邮件在gmail中显示为空.
任何帮助将不胜感激.
谢谢.
我正在尝试使用Sinatra,Ruby,rack,haml,pony和SendGrid构建一个应用程序,使用git和RVM在Heroku上进行部署.该应用程序是一个博客变体,应发送一封电子邮件,其中包含在表单上提交的评论.在我的本地服务器上,当表单提交时,我收到以下错误:
LoadError at /
cannot load such file -- pony
file: tools.rb location: require line: 314
BACKTRACE
(expand)
/Users/Kevin/prog/ruby/Sinatra/Noobs/noobs.rb in block in <top (required)>
require 'pony'
Run Code Online (Sandbox Code Playgroud)
在Heroku上运行时,表单提交会导致内部服务器错误.'无法加载此类文件'错误表明该文件不在gem路径上,但如果我理解正确,操作系统不同意:
? noobs git:(master) ? bundle show pony
/Users/Kevin/.rvm/gems/ruby-1.9.3-p194@noobs/gems/pony-1.4
? noobs git:(master) echo $GEM_PATH
/Users/Kevin/.rvm/gems/ruby-1.9.3-p194@noobs:/Users/Kevin/.rvm/gems/ruby-1.9.3-p194@global
Run Code Online (Sandbox Code Playgroud)
这是需要小马的代码(noobs.rb):
require 'rubygems'
require 'sinatra'
require 'haml'
require "sinatra/reloader" if development?
# ...
post '/' do
require 'pony'
Pony.mail(:from => params[:name] + "<" + params[:contact] + ">",
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来让小马工作?
我试图覆盖设计,以发送邮件来激活用户.在注册控制器的创建方法中我有这个
urlEmail = resource.email.sub('@','-')
Pony.mail(
:to => resource.email,
:from => "noreply@mysite.com",
:subject => "Confirm Account",
:headers => { 'Content-Type' => 'text/html' },
:body => ("<h1>Welcome To My Awesome Site</h1>
<p>follow this link to create your account</p>
<p>http://localhost:3000/confirm-me/stuff?=" + resource.confirmhash.to_s + "/" + urlEmail.to_s + "</p>") )
Run Code Online (Sandbox Code Playgroud)
该URL导致激活用户的方法.这是否是确认帐户的好方法.问题是当Pony.mail(...)运行时我得到这个错误
uninitialized constant RegistrationsController::Pony
Run Code Online (Sandbox Code Playgroud)
我安装了pony,Pony.mail在控制台中工作.我也尝试在控制器文件的顶部使用require'pony',但我得到了
no such file to load -- pony
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来完成这项工作.
我有一个sinatra应用程序执行黄瓜测试并发送电子邮件通知与他们的结果.电子邮件gem是Pony,这个通知有一个haml模板.
此逻辑在路径中起作用:
require 'sinatra'
require 'haml'
require 'pony'
get "/execute_all/?" do
execute_all_tests()
Pony.mail :to => "recipients@email.com",
:from => "do-not-reply@email.com",
:subject => "Test results,
:html_body => haml(:email_layout)
redirect "/"
end
Run Code Online (Sandbox Code Playgroud)
但是,当我使用rufus调度程序执行这些操作的预定作业时,我得到以下异常:
scheduler caught exception:
undefined method `haml' for main:Object
Run Code Online (Sandbox Code Playgroud)
代码是来自路线的copypasta:
scheduler = Rufus::Scheduler.start_new
scheduler.every '2h' do
execute_all_tests()
Pony.mail :to => "recipients@email.com",
:from => "do-not-reply@email.com",
:subject => "Test results,
:html_body => haml(:email_layout)
end
Run Code Online (Sandbox Code Playgroud)
所有两个方法都在同一个文件中,执行以运行Sinatra app.
如何摆脱这个异常,并发送带有haml模板的电子邮件作为预定的工作?
我使用Fedora20并通过sudo yum install gtkd安装gtkd
如何编译gtk这段代码?
import gtk.MainWindow;
import gtk.Label;
import gtk.Main;
void main(string[] args)
{
Main.init(args);
MainWindow win = new MainWindow("Hello World");
win.setDefaultSize(200, 100);
win.add(new Label("Hello World"));
win.showAll();
Main.run();
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误
➜/ tmp dmd -L-lgtkd -L-ldl main.d main.d(1):错误:模块MainWindow在文件'gtk/MainWindow.d'中无法读取导入路径[0] =/usr/include/dmd/phobos import path [1] =/usr/include/dmd/druntime/import
请帮我.
我有一个报名表,要求提供人名和电子邮件地址.我将该电子邮件地址保存到会话中,以便在表单提交后我可以访问它.然后我使用Pony向提交表单的人发送感谢/通知电子邮件.但是,虽然它没有问题发送到MobileMe地址,但它不会发送到Gmail地址.我用来发送的行是:
Pony.mail(:to => "#{@email}", :from => 'from@email.com', :subject => "Thanks for entering!",
:body => "Thank you!")
Run Code Online (Sandbox Code Playgroud)
@email变量在处理程序中定义,并从会话中获取值.
有任何想法吗?
我是一个Ruby新手,如果这个问题很简单,请道歉.非常感谢您的帮助.
我们有一个部署在Heroku上的Sinatra应用程序.我们正在尝试添加一个发送简单电子邮件的页面.我已将SendGrid插件添加到Heroku应用程序中.现在,我只是尝试添加使用SendGrid SMTP服务器信息创建和发送消息的Ruby代码.
我遇到的问题是即使我在Heroku应用程序上安装了Mail gem(通过添加到Gemfile中),当Heroku应用程序启动时抱怨"treetop/runtime"未安装时出现错误:
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:75:in `require': no such file to load -- treetop/runtime (LoadError)
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:75:in `rescue in block in <module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:69:in `block in <module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:68:in `each'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:68:in `<module:Mail>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /app/.bundle/gems/ruby/1.9.1/gems/mail-2.4.4/lib/mail.rb:2:in `<top (required)>'
?[32m2012-04-03T16:37:49+00:00 app[web.1]:?[0m from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
Run Code Online (Sandbox Code Playgroud)
同样,当我尝试安装Pony gem时,它抱怨它无法加载Mail.奇怪的是,这一切都适用于我的本地系统,所以我认为这是Heroku的一个问题.我无法让Heroku从Pony或Mail中完全加载所需的一切,以便成功启动.(注意:我甚至无法启动Heroku,因此我甚至无法测试实际发送的电子邮件代码.)
任何具体的帮助/见解将不胜感激.Heroku有没有遇到过这个?还有其他宝石可以用于这个简单的目的吗?
谢谢!
PS捆绑包成功安装了邮件(2.4.4)和小马(1.4).
我想在Mail erb模板中用作body.当我在Pony gem上设置它时,它可以工作.
post 'test_mailer' do
Mail.deliver do
to ['test1@me.com', 'test2@me.com']
from 'you@you.com'
subject 'testing'
body erb(:test_mailer) # this isn't working
end
end
private
fields = [1, 2] # some array
Run Code Online (Sandbox Code Playgroud)
ERB文件
<% fields.each do |f| %>
<%= f %>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我尝试用小马orm中的order_by聚合实现一个简单的选择:
因此,我尝试了以下方法:第一种方法引发错误消息:
sel = select((f.Name, f.id) for f in Firma).order_by(Firma.Name)
Run Code Online (Sandbox Code Playgroud)
这样,我从python中收到错误消息:“ NotImplementedError:按属性排序仅限于返回简单对象列表的查询。请尝试使用其他形式的排序(通过元组元素编号或成熟的lambda expr)”
第二种方式是选择顺序正常,但是在我的词典中插入会破坏已选择的选择顺序
for f in Firma.select(lambda f: f.Name) \
.order_by((Firma.Name)):
dic[f.Name] = f.id
print ("=== f.Name", f.Name)
dic[f.Name] = f.id
print(" === dic[f.Name]", dic[f.Name])
Run Code Online (Sandbox Code Playgroud)
结果如下:
=== f.Name A
=== dic[f.Name] 10
=== f.Name B
=== dic[f.Name] 11
=== f.Name C
=== dic[f.Name] 12
=== f.Name Neckermann
=== dic[f.Name] 7
=== f.Name Otto
=== dic[f.Name] 6
=== f.Name Quelle
=== dic[f.Name] 3
=== f.Name Testfirma
=== dic[f.Name] 9
=== …Run Code Online (Sandbox Code Playgroud) 我最近遇到过通过Rails发送电子邮件.看完铁路广播后,您似乎可以在使用Action Mailer时编写模板.我真的很喜欢这个功能.我也遇到了Pony,看起来很容易使用.
我想知道我是否可以使用模板通过Pony发送电子邮件,除非Pony用于表达非模板化的电子邮件.