Rails将记录保存到数据库中

我们可以使用Ruby on Rails将数据保存到数据库中。让我们看一个将表单数据保存到数据库中的示例。

步骤1创建一个新的Rails应用程序。

rails new saverecord

步骤2更改目录以登录。

cd saverecord

步骤3从控制台创建支架。

rails generate scaffold User name:string password:digest

步骤4迁移数据库。

rake db:migrate

步骤5转到Gemfile, 然后取消注释以下行。

gem 'bcrypt'

步骤6运行以下命令:

bundle install

步骤7转到app / controllers / users_controller.rb, 并在create方法中编写以下代码。

def create 
    @user = User.new(user_params) 

    respond_to do |format| 
      if @user.save 
        format.html { redirect_to users_url, notice: 'User was successfully created.' } 
        format.json { render :show, status: :created, location: @user } 
      else 
        format.html { render :new } 
        format.json { render json: @user.errors, status: :unprocessable_entity } 
      end 
    end 
  end

步骤8转到app / views / users / index.html.erb文件。

<h1>Listing Users</h1> 

<% if notice %> 
<p id="notice"> <%= notice %> 
</p>
<%= link_to 'New User', new_user_path %>

步骤9转到app / views / users / new.html.erb文件。

<h1>New User</h1> 

<%= render 'form', user: @user %> 

<%= link_to 'Back', users_path %>

步骤10转到app / views / users / _form.html.erb文件。

<%= form_for(user) do |f| %> 
  <% if user.errors.any? %> 
    <div id="error_explanation"> 
      <h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2> 

      <ul> 
      <% user.errors.full_messages.each do |message| %> 
        <li><%= message %></li> 
      <% end %> 
      </ul> 
    </div> 
  <% end %> 

  <div class="field"> 
    <%= f.label :name %> 
    <%= f.text_field :name %> 
  </div> 

  <div class="field"> 
    <%= f.label :password %> 
    <%= f.password_field :password %> 
  </div> 

  <div class="field"> 
    <%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation %> 
  </div> 

  <div class="actions"> 
    <%= f.submit %> 
  </div> 
<% end %>

步骤11启动Rails服务器。

rails s

步骤12在本地主机上运行它。

http://localhost:3000/users
Rails保存数据1

单击”新建用途”以添加新用户。

Rails保存数据2

单击创建使用以添加新用户。

Rails保存数据3

下载

下载此示例

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?