在Ruby on Rails中将视图与控制器链接起来

时间:2017-03-04 02:18:08

标签: ruby-on-rails ruby

所以我创建了一个注册表单,如下所示。有人可以指导我如何将此视图与控制器链接。我使用RoR作为框架。在ror中,他们有一种使用<%f.text_field ....%>创建表单的方法。它们将直接在控制器中使用。但是从那以后我不会有这样的领域我该怎么办?

我发了一篇类似的帖子,询问了用户建议我浏览文档的路由。我已经阅读了一些文档,但我发现其中一些文件令人困惑。由于用户要求这样做,我尝试再次尝试,但未能理解如何前进。

如果有人可以引导我走向一个起点,我会非常感激,因为我的时间紧迫。

P.S:我是RoR的新手,因此是愚蠢的问题。

<!DOCTYPE html>
    <html>
    <head>

    </head>

    <body>
    <main>

<div class="container">
 <div class="row">
 <form class=" " action="/users/create" method="post">

<h3>Sign Up </h3>  

<div class="row">
<div class="input-field col s12 m6 l6">
 <input id="user_name" name="user_name" type="text" class="validate">
<label for="user_name">User Name</label>
</div>
</div>

<div class="row ">
<div class="input-field col s5">
<input id="password" name="password" type="password" class="validate">
<label for="password">Password</label>
</div>
</div>

<div class="row">
<div class="col s10">
<button class="btn waves-effect waves-light  z-depth-5" type="submit" name="action">Sign Up</button>
 </div>
</div>
</div>

</form>

 </div>
</div>
 </main>
 </body>
 </html>

1 个答案:

答案 0 :(得分:0)

默认情况下,控制器和视图通过通用名称链接 您的控制器的名称如下:

users_controller.rb

您的控制器视图都位于名为“views”的文件夹中,然后位于“users”中。通常在创建控制器时会生成视图文件夹。

在控制器内部定义方法:

def index
end

每个方法都有自己的视图,它具有相同的名称。例如,“索引”操作的视图位于“视图”&gt;中。 “用户”&gt; “index.html.erb”

在index.html.erb中,您可以编写所有html并获取控制器中定义的任何内容。

例如,让我们定义索引操作并获取索引视图以显示所有用户:

def index
  @user = User.all  # returns an array (list) with all users 
end

在您看来,@ user是一个可用于填充视图的变量,然后您可以使用它执行某些操作。假设用户有一个名字: index.html.erb

<% @user.each do |user|%>  # loop through each user and get the name
  <p>user.name</p>
<% end %>

正如您所看到的那样,视图和控制器是相互关联的,您所做的只是传递数据。

要阅读的好东西:

RoR中的视图渲染: http://guides.rubyonrails.org/layouts_and_rendering.html http://guides.rubyonrails.org/action_view_overview.html

控制器:

http://guides.rubyonrails.org/action_controller_overview.html