0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【簡単】renderメソッドの使い方を実際に直面したエラー文と共に解説する※view内のみ

Last updated at Posted at 2020-02-08

renderメソッドの使い方をメモ。

renderメソッドにまつわるこんなエラーが出ました。
スクリーンショット 2020-02-08 10.54.4654.png

原因

renderメソッドで指定しているファイル(shared.erb)がapp/views内に存在しない、とのこと。

そこでapp/views内をみてみたところ、sharedファイルはあったものの、名前が_error_messages_html.rebとなっていました。
image.png

表示したい部分では、'''<%= render 'shared' %>'''だけになっていたので、
<%= render 'shared/error_messages' %>に変更する必要がありますね。

<% provide(:title, "Edit user") %>
<h1>Update your profile</h1>

<div class="row">
  <div class="col-md-6 col-md-offset-3">
    <%= form_for(@user) do |f| %>
      <%= render 'shared' %>   ←この部分を<%= render 'shared/error_messages' %>に変更する

      <%= f.label :name %>
      <%= f.text_field :name, class: 'form-control' %>

      <%= f.label :email %>
      <%= f.email_field :email, class: 'form-control' %>

      <%= f.label :password %>
      <%= f.password_field :password, class: 'form-control' %>

      <%= f.label :password_confirmation, "Confirmation" %>
      <%= f.password_field :password_confirmation, class: 'form-control' %>

      <%= f.submit "Save changes", class: "btn btn-primary" %>
    <% end %>


  </div>
</div>

【各種条件】renderメソッドの使い方で理解したこと

・app/viewsフォルダの中で、何度も表示したいhtml.erbファイル(つまり<%= =>で指定するファイル)を別に作成しなければいけない。
・railsの慣習として、app/views/sharedファイルの中にrenderメソッドで表示するファイルを置くことになっている。
・慣習として、renderメソッドで指定されるhtml.erbファイルはファイル名の先頭に_をつける。

ググっても難しい言葉でしか書いていないので、簡潔にまとめました。初学者の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?