BETA

【Sinatra】でCRUD操作~Edit~

投稿日:2019-09-01
最終更新:2019-09-01

SinatraでCRUD操作をします!

今回はEditについて書いていきます~

*参考
https://github.com/shannonjen/sinatra_crud_tutorial/blob/master/app.rb
https://gist.github.com/victorwhy/45bb5637cd3e7e879ace

こちらの記事の続きで書いていきます。
https://sunnydayservice.qrunch.io/entries/miMLXbgn8rs8jCmu

まずはShowから

まずはレコードの詳細画面を見れるようにコードを記述していきましょう!
app.rb に以下のコードを追記します。

app.rb

get '/:id' do  
    @users = User.find(params[:id])  
    erb :show  
end  

get '/:id' do と記述することでURLに「 http://localhost:4567/1 」と入力した場合、idが1のレコードを参照することが出来ます。

@users = User.find(params[:id]) は、User.find(params[:id]) で入力されたidのレコードとUserテーブルから探し出し、@usersに代入し、show.erbに引き渡します。

show.erbはこう記述しました。(これまた最低限のHTMLコードです。。)

show.erb

<ul>  
<% user = @users %>  
    <li><%= user.id %></li>  
    <li><%= user.name %></li>  
    <li><%= user.email %></li>  
</ul>  

今回は、一つのレコード(id:1のユーザ)のみを表示させるので、配列は使えません。

Edit機能

*編集中に記事が消えてしまったので、省略して書いていきます。

app.rb

get '/user/edit/:id' do  

    @users = User.find(params[:id])  
    erb :edit  
end  

put '/user/edit/:id' do  
    @user = User.find(params[:id])  
    @user.update(name: params[:name], email: params[:email])  
    @user.save  
    redirect '/user/'+params[:id]  
end  

Userのidを指定して更新処理を行います。
上のコードが編集画面で、下の画面が更新機能です。
更新したいカラムを指定しています。

次にview画面を作成します。

view/edit.erb

<h2>Edit User</h2>  

<form method="post" action="/user/edit/<%= @users.id %>">   
    <input type="hidden" name="_method" value="put">  
    <input type="text" name="name" value="<%= @users.name %>">  
    <input type="text" name="email" value="<%= @users.email %>">  
    <button type="submit">ユーザーの更新</button>  
</form>  
<a href="/">トップへ戻る</a>  

<%= @users.id %> でUser.idを指定することが出来ます。

まとめ

意外と簡単にできちゃいました!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

初学者の成長が垣間見れます

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!