gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:49 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com