我已经开始学习 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/