ruby、sinatra 和 haml 中的联系表

2023-12-19

我对这三个方面都是新手,我正在尝试为网站编写一个简单的联系表格。我想出的代码如下,但我知道它存在一些基本问题(由于我对 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"}

这是我在 sinatra 的 app.rb 中的代码:

require 'rubygems'
require 'sinatra'
require 'haml'
require 'pony'

    get '/' do
        haml :index
    end 

    get '/contact' do
        haml :contact
    end

    post '/contact' do
        name = #{params[:name]}
        mail = #{params[:mail]}
        body = #{params[:body]}     
        Pony.mail(:to => '*emailaddress*', :from => mail, :subject => 'art inquiry from' + name, :body => body) 
    end

我为你们中的任何人想出了答案:

haml:

%form{ :action => "", :method => "post"}
  %fieldset
    %ol
      %li
        %label{:for => "name"} Name:
        %input{:type => "text", :name => "name", :class => "text"}
      %li
        %label{:for => "mail"} email:
        %input{:type => "text", :name => "mail", :class => "text"}
      %li
        %label{:for => "body"} Message:
        %textarea{:name => "body"}
    %input{:type => "submit", :value => "Send", :class => "button"}

还有app.rb:

post '/contact' do
        name = params[:name]
        mail = params[:mail]
        body = params[:body]

        Pony.mail(:to => '*emailaddress*', :from => "#{mail}", :subject => "art inquiry from #{name}", :body => "#{body}")

        haml :contact
    end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ruby、sinatra 和 haml 中的联系表 的相关文章

  • 带有附加参数的redirect_to

    我是一个菜鸟 redirect to users url notice Succeed p p 然后我添加一个message它失败了 redirect to users url notice Succeed message test p p
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 检查rails devise ldap gem中的组成员身份,是否在yaml中?

    我是否应该使用 ldap yml 文件来确保使用 ldap 进行身份验证的人拥有分配给他们的正确组以允许他们进入 无论如何 我都不是 AD 专业人士 这让我很困惑 什么是组和属性 据我了解 我们在 AD 中有一个用户 他们有一个 samAc
  • Ruby gem 环境问题 - LoadError: no such file to load -- robots

    我正在尝试使用 anemone gem 编写一个爬虫 这需要 robots gem 不管出于什么原因 机器人绝对不会包括在内 这是我的一些环境信息 gem list d robots LOCAL GEMS robots 0 10 1 Aut
  • 我必须使用什么加密程序来通过 HTTP 协议发送加密的“电子邮件”和“密码”值?

    我正在使用 Ruby on Rails 3 我想通过 HTTP 协议发送 电子邮件 和 密码 值 我知道 我不应该 但我需要 我需要从发送用户凭据我的客户申请到一个我的服务应用 我可以使用公共和私人RSA密钥来实现这一点 但如果是这样 我不
  • 用于验证目的的动态查找方法

    我正在使用 Ruby on Rails 3 0 7 我想在运行时查找一些记录以进行验证 但为该查找方法传递 设置一个值 也就是说 在我的班级中 我有以下内容 class Group lt lt ActiveRecord Base valid
  • 需要野科切吗?没有要加载的文件

    我正在尝试开始使用 Nokogiri 我运行了命令 gem install nokogiri 作为 Windows 7 64 位 中的管理员 控制台显示 已成功安装 和 已安装 1 个 gem 当我输入时 gem list local OR
  • 如何在initialize()中使用define_method

    尝试使用define method inside initialize但得到未定义的方法define method 我究竟做错了什么 class C def initialize n define method n puts some me
  • Ruby 的 Faraday - 多次包含相同的参数

    我正在使用一个 API 该 API 迫使我多次发送相同的参数名称以级联不同的过滤条件 因此 示例 api GET 调用如下所示 GET http api site com search a b1 a b2 a b3 a c2 我使用 Far
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • 覆盖 Sinatra 默认的 NotFound 错误页面

    有没有办法覆盖 sinatra 默认的 NotFound 错误页面 Sinatra 不知道这个小曲 我希望 sinatra 在未找到正确的路由时仅将纯字符串显示为 未找到方法 但是当我从路由内部引发 404 错误时 我希望它显示传入的错误消
  • 如何在 Ruby 中创建自定义排序方法

    我想指定一个自定义块方法 通过评估两个属性来对对象数组进行排序 然而 经过多次搜索 我没有找到任何没有的例子 lt gt 操作员 我想比较a to b if a x less than b x return 1 if a x greater
  • HMC SHA1 哈希 - C# 生成与 Ruby 不同的哈希输出

    我正在尝试为我正在使用的第三方服务快速获取一个有缺陷的 Net 客户端库 原始库 可以运行 是用 Ruby 编写的 但 DotNet 的等效库会向 Ruby 库生成不同的哈希输出 Ruby加密代码如下 def self encrypt st
  • 启动同一作业的多个延迟作业进程

    我在运行多个工作人员的设置中使用延迟作业 就我的问题而言 这并不重要 但假设我运行 10 个工作线程 当前在开发模式下执行此操作 我遇到的问题是两个不同的工作人员有时开始处理同一项工作 调用我的工作对象上的执行方法 据我所知 延迟作业正在使
  • 通过 SO_RCVTIMEO 套接字选项在 Ruby 中设置套接字超时

    我试图通过 SO RCVTIMEO 套接字选项在 Ruby 中设置套接字超时 但它似乎对任何最近的 nix 操作系统都没有影响 使用 Ruby 的 Timeout 模块不是一个选择 因为它需要为每个超时生成和连接线程 这可能会变得昂贵 在需
  • RSpec 2 中使用 OR 相等

    下面这个例子的正确写法是什么 玩家的分数应等于 5 或 8 it should equal 5 or 8 do player score should 5 or 8 end Thanks Tim 5 or 8将始终产生结果 5 并且不会执行
  • 自动加载常量时检测到循环依赖

    我将 Rails 从版本 3 1 2 运行良好 升级到 4 0 并遇到以下错误 circular dependency detected while autoloading constant Foo 我创建了一个类ProductFactor
  • rake db:migrate db:reset 和 db:schema:load 之间的区别

    和 之间的不同rake db migrate and rake db reset我很清楚 我不明白的是如何rake db schema load与前两者不同 只是为了确保我在同一页面上 rake db migrate 运行尚未运行的迁移 r
  • Gem 在 irb 中可用,但在 Rails 控制台中不可用

    我正在尝试在我的 Rails 项目中使用 RedCloth gem 当我使用irb我可以加载宝石 require rubygems require RedCloth 它工作正常 但是当我在 Rails 控制台中尝试相同的操作时 我收到一条错
  • Rails:Passenger Standalone 适合生产部署吗?

    问题标题几乎概括了这一点 我找不到任何好的资源来概述使用 Phusion Passenger Standalone 进行 Rails 应用程序部署的优点 缺点 它与运行 Passenger Nginx 或 Passenger Apache

随机推荐

  • 在登录时从 Azure Active Directory 生成环回用户(反应本机应用程序)的最佳实践是什么?

    我有一个带有expo sdk的react native应用程序 使用loopback 3作为我的后端 我试图向其中添加Azure Active Directory授权和身份验证 以便我的用户可以使用他们的工作电子邮件和密码登录 我正在考虑如
  • 在根 IObservable 的生命周期内将没有最终订阅者的“中间 IObservables”保留在内存中

    例如 考虑一下 public IDisposable Subscribe
  • lambda 中使用的 Java 8 流变量应该是最终的或实际上最终的[重复]

    这个问题在这里已经有答案了 这个问题已经被问到了 但今天我发现了一些奇怪的事情 对于以下代码 public static List
  • 如何在Windows上设置pthreads?

    我在 Windows 上找到了 pthreads 的实现here http www sourceware org pthreads win32 但我无法让它正常工作 谁能帮我安装 pthreads 吗 比如将 DLL lib 和 h 文件放
  • 如何使用ajax将数组从php返回到javascript

    我有这个ajax代码 xmlhttp new XMLHttpRequest xmlhttp onreadystatechange function if xmlhttp readyState 4 xmlhttp status 200 doc
  • 模块文件的部署目标是 ios9.0 v9.0 和 Xcode 7 / Swift 2

    我有一个项目使用一些我通过 cocoapods 安装的模块 其中之一是Charts https github com danielgindi ios charts 为了将我的项目从 Swift 1 2 迁移到 Swift 2 我已经完成了首
  • Android - Youtube API V3 搜索不起作用

    我在集成 youtube v3 API 时遇到了困难 我尝试了中给出的所有可能的解决方案YouTube API 密钥 https stackoverflow com questions 39543105 youtube api key 39
  • JavaScript - 使代理无法检测

    据我了解 ES 规范是这么说的Proxy 用于代理对象 函数和类的全局构造函数 不可检测 这意味着如果我代理一个函数 使用该代理函数的任何人都无法检测到我使用了代理 然而 显然我误解了它 因为代理功能是可以检测到的 例如 new Proxy
  • php SQL Server mssql_select_db 错误

    直到昨天 我一直在 IIS 7 上使用 PHP 5 愉快地连接到 SQL Server Express 2005 昨天我在选择数据库时开始出现错误 这会输出以下内容 将数据库上下文更改为 数据库 无法选择数据库
  • 使用按位运算

    您多久使用按位运算 黑客 来执行某种操作 优化 在什么样的情况下才真正有用呢 示例 而不是使用 if if data c gt 128 in a loop sum data c 你写 int t data c 128 gt gt 31 su
  • 在VS2010中调试Win32 MFC应用程序时显示控制台窗口

    这里我有一个MFC项目 我想在按 F5 时也看到控制台窗口 然后我就可以看到输出了 我可以在项目设置中进行一些配置以在不更改代码的情况下启用此功能吗 Thanks 解决了 打开项目的属性页对话框 有关详细信息 请参阅设置 Visual C
  • 使用 Verisign OCSP 服务器验证证书

    我正在尝试使用 Verisign 的 OCSP 服务器来验证其颁发的证书 例如 amazon com 我有颁发者证书 很难找到 以及amazon 0证书 我正在使用 openSSL 但我似乎无法获得正确的 OCSP 响应者证书来验证响应 o
  • OR 在自定义条件格式公式中

    在 Google 表格中 我有一个这样的表格 A B C D B color color none none color 我想为包含的单元格的背景着色A or B 有没有任何自定义公式可以帮助解决这个问题 假设相关行是第一行 请选择它并尝试
  • 什么是进程的实时优先级

    ps o p 还提供 rtprio 和 prio 有什么不同 如果您正在使用实时调度程序 这意味着如果进程由实时调度程序控制运行 那么 rtprio 可能是相关的 prio 与默认调度程序 sched 相关 通常 RT 进程默认具有系统范围
  • 如何允许用户从Android的内部和外部存储器中仅选择pdf文件

    由于我可以打开 下载 文件夹 但 PDF 看起来已禁用 因此我无法选择 PDF 文件 还有其他方法可以实现这一目标吗 这是按钮点击的代码 case R id pdf Upload Intent intent new Intent inten
  • 用于 Xcode 4.x 的 CS106B 库

    是否有 CS106B 的斯坦福 C 库版本可与 Xcode 4 x 一起使用 iTunes U 视频已有大约 4 年历史 讲义中提到的库与 Xcode 4 x 10 7 3 不兼容 我已经尝试安装 Xcode 3 但它在启动时崩溃 因此这不
  • 动态宽度 DIV 位于静态宽度 DIV 旁边

    一切都在标题中 我试图将页面左侧的 div 设置为静态宽度 170px 这很好用 我遇到的问题是在它旁边添加一个 div 它会缩放以适应剩余的宽度 我可以在这里使用一个简单的方法吗 在右侧 div 上 只需设置边距 style margin
  • 在段落定界符非标准的段落上拆分文本

    如果我的文本具有标准段落格式 空行后跟缩进 例如文本 1 则可以很容易地使用 text split n n 提取段落 Text 1 Lorem ipsum dolor sit amet consectetur adipiscing elit
  • Android - 活动与视图

    我正在开发一个 Android 应用程序 该应用程序有多个屏幕 用户需要在多个屏幕之间导航 我很好奇在这些屏幕之间切换时的最佳实践是什么 我在为每个屏幕创建一个新的 Activity 和简单地更改视图 setContentView R la
  • ruby、sinatra 和 haml 中的联系表

    我对这三个方面都是新手 我正在尝试为网站编写一个简单的联系表格 我想出的代码如下 但我知道它存在一些基本问题 由于我对 sinatra 缺乏经验 任何帮助完成这项工作的帮助将不胜感激 我似乎无法弄清楚 找到这类事情的文档 联系页面的 ham