我刚开始尝试熟悉 Rails,但我对 Ruby 了解不多。目前我正在做一个初学者项目来熟悉这个框架,该框架涉及一个简单的表单,其中包含姓名、电子邮件和电话号码,当你点击提交按钮时,页面应该刷新并显示你提交的信息(所以有没有数据库交互,模型应该做的很少)。这很简单,但由于我目前对 Ruby 的了解非常少,我有点困惑。我已经编写了大部分视图,但我仍然对在控制器和模型中放入什么感到困惑。如果有人可以提供任何提示,那就太好了!
问问题
2318 次
3 回答
3
你需要无表模型。请参阅 Ryan 关于此主题的出色网络广播。
于 2012-05-31T19:57:03.990 回答
2
模型(至少来自 ActiveRecord::Base 的模型)需要一个数据库,所以如果你使用一个模型,你就是在使用一个数据库,即使它是一个简单的数据库,比如 SQLite。
如果您不想深入模型并生成迁移来为模型创建表,那么您可能只是要将表单值存储到实例变量中并在视图中引用它们。下面是一个如何做到这一点的快速示例。
如果您有一个将数据(例如:name
和email
)发送到create
操作的表单,则创建操作看起来像这样:
def create
@name = params[:name]
@email = params[:email]
render :my_template
end
上面的create
操作是将发送给它的参数分配给实例变量,然后您可以在视图中引用它。在上面的示例中,该create
操作将尝试渲染一个名为的视图,该视图my_template
可能会被命名my_template.html.erb
并且可能看起来像这样:
<p>Your name is <%= @name => and your email is <%= @email =>.</p>
这是一个非常小且人为的示例,但希望这会有所帮助。
当您继续使用模型时,您的创建操作可能会改为创建模型的新实例,将用户发送的参数传递给该模型,保存模型,然后将它们重定向到显示数据的页面。
于 2012-05-31T19:52:24.073 回答
1
使用数据库要容易得多。
rails new stack
cd stack
rm public/index.html
rails generate scaffold Member name:string email:string phone:string
rake db:migrate
rails server
然后浏览到 localhost:3000/members
(假设您使用的是 rails 3)
于 2012-05-31T19:57:40.870 回答