1

我刚开始尝试熟悉 Rails,但我对 Ruby 了解不多。目前我正在做一个初学者项目来熟悉这个框架,该框架涉及一个简单的表单,其中包含姓名、电子邮件和电话号码,当你点击提交按钮时,页面应该刷新并显示你提交的信息(所以有没有数据库交互,模型应该做的很少)。这很简单,但由于我目前对 Ruby 的了解非常少,我有点困惑。我已经编写了大部分视图,但我仍然对在控制器和模型中放入什么感到困惑。如果有人可以提供任何提示,那就太好了!

4

3 回答 3

3

你需要无表模型。请参阅 Ryan 关于此主题的出色网络广播。

http://railscasts.com/episodes/193-tableless-model

于 2012-05-31T19:57:03.990 回答
2

模型(至少来自 ActiveRecord::Base 的模型)需要一个数据库,所以如果你使用一个模型,你就是在使用一个数据库,即使它是一个简单的数据库,比如 SQLite。

如果您不想深入模型并生成迁移来为模型创建表,那么您可能只是要将表单值存储到实例变量中并在视图中引用它们。下面是一个如何做到这一点的快速示例。

如果您有一个将数据(例如:nameemail)发送到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 回答