没有数据库的Rails中的简单形式

时间:2012-05-31 19:42:53

标签: ruby-on-rails ruby model-view-controller

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

3 个答案:

答案 0 :(得分: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>

这是一个非常小而且做作的例子,但希望这会有所帮助。

当您继续使用模型时,您的创建操作可能会创建模型的新实例,将该模型传递给用户发送的参数,保存模型,然后将它们重定向到显示数据的页面。

答案 1 :(得分:2)

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

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

答案 2 :(得分: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)