ruby - 使用 Padrino 表单助手和表单生成器 - 入门

标签 ruby padrino

我已经开始学习 Ruby,直接使用 Haml 学习 Padrino。

大多数 Padrino 文档都假定您具有高水平的 Ruby/Sinatra 等知识...

我正在寻找可以浏览以了解其工作原理的示例。一个特定的场景是做一个简单的表格。在我的主页(索引)页面上,我想要一个带有按钮的“注册”编辑框。

#app.rb
...
get :index, :map => "/" do
  @user = "test"
  haml: index
end

get :signup, :map => "/signup" do
  render :haml, "%p email:" + params[:email]
end
...

在我看来:

#index.haml
...
#signup
  -form_for @user, '/signup', :id => 'signup' do |f|
    = f.text_field_block :email
    = f.submit_block "Sign up!", :class => 'button'
...

这是行不通的。 (/signup) 中的 render 不会做任何事情。

请注意,我知道我需要定义我的模型等...;但我正在努力学习。

我不只是告诉我这里做错了什么,我真正想要的是一个相当完整的 Padrino 示例应用程序,它使用表单(博客示例仅涵盖 Padrino 表面积的一小部分)。

我在哪里可以找到大量很棒的 Padrino 样本? :-)

编辑

下面的答案有助于让我看到更多示例。但是我仍然对上面的代码有什么问题不满意。

我在黑客攻击中稍微改变了这一点,但我仍然没有正确传递 :email 参数:

#index.haml
...
  #signup
     - form_for :User, url(:signup, :create), :method => 'post' do |f|
       = f.text_field_block :email
       = f.submit_block "Sign up!"
...    

#signup.rb
...
post :create do
  @user = User.new(params[:email])
  ...
end

编辑 添加模型:

#user.rb
class User
  include DataMapper::Resource
  property :id, Serial
  property :name, String
  property :email, String
  ...
end

运行时,params[:email] 始终为 nil。我已经将它与其他一些样本进行了比较,但我看不出我做错了什么。帮助!

最佳答案

您可以在此处浏览一些示例站点:https://github.com/padrino/padrino-framework/wiki/Projects-using-Padrino

或者您可以在这里浏览 padrinorb.com 的资源:https://github.com/padrino/padrino-web

最好的方法也是生成管理:padrino g admin,您应该在其中查看表单的工作原理。

form 标签默认执行 post 操作,除非你指定 :method => :get|:put|:delete 所以在你的controller 你必须把 :get 改成 :post

post :signup, :map => "/signup"do ...

由于您使用的是 form_for :user 参数在 params[:user] 中,因此要获取电子邮件,您需要将 params[:user][:电子邮件]

关于ruby - 使用 Padrino 表单助手和表单生成器 - 入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128336/

相关文章:

ruby-on-rails - Ruby 多重哈希总结

ruby - Paperclip:以编程方式分配图像并设置其名称

ruby - 如何停止 AmazonAWS 上的程序?

padrino - 如何在自定义帮助程序类中使用 Padrino 帮助程序

ruby-on-rails - 尝试包含辅助模块时未初始化的常量

ruby-on-rails - 如果关联不存在,如何不求和?

ruby-on-rails - Rails 4,如何将 s3 图像添加到 wicked pdf

ruby - Padrino、compass 和 heroku 的只读文件系统

Mysql2::错误:使用 Rails 的 key '2016' 重复条目 'PRIMARY'

ruby - 在 Padrino 中插入中间件