2

我通过直接与 Haml 一起去 Padrino 学习 Ruby。

大多数 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'
...

这不起作用。renderin ( )从/signup不做任何事情。

注意,我知道我需要定义我的模型等......;但我在学习中正在努力做到这一点。

与其只是告诉我我做错了什么,我真正想要的是一个相当完整的使用表单的 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. 我已经将它与一堆其他样本进行了比较,我看不出我做错了什么。帮助!

4

1 回答 1

2

您可以在此处浏览一些示例站点: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:get:post

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

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

于 2011-11-15T09:59:53.707 回答