{"id":2655,"date":"2021-12-20T08:44:25","date_gmt":"2021-12-19T23:44:25","guid":{"rendered":"https:\/\/suzutukiblog.com\/?p=2655"},"modified":"2022-03-07T19:58:47","modified_gmt":"2022-03-07T10:58:47","slug":"destroy","status":"publish","type":"post","link":"https:\/\/suzutukiblog.com\/index.php\/2021\/12\/20\/destroy\/","title":{"rendered":"Docker+Rails\u74b0\u5883\u4e0b\u3067\u306e\u30e6\u30fc\u30b6\u30fc\u524a\u9664\u306e\u5b9f\u88c5(\u9000\u4f1a\u6a5f\u80fd\u306e\u5b9f\u88c5)"},"content":{"rendered":"<p><span class=\"description\">\u30b5\u30f3\u30d7\u30eb\u30c7\u30fc\u30bf\u751f\u6210\u30bf\u30b9\u30af\u306badmin\u30e6\u30fc\u30b6\u30fc\u30921\u4eba\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/span><\/p>\n<p><strong>db\/seeds.rb<\/strong><\/p>\n<pre>User.create!([{ name: \"suzutuki\",\r\n  email: \"example@railstutorial.org\",\r\n  password: \"suzu\",\r\n  password_confirmation: \"suzu\",\r\n  admin: true },\r\n  { name: \"suzu\",\r\n  email: \"suzu1@railstutorial.org\",\r\n  password: \"suzu\",\r\n  password_confirmation: \"suzu\"},\r\n  { name: \"suzu\",\r\n  email: \"suzu2@railstutorial.org\",\r\n  password: \"suzu\",\r\n  password_confirmation: \"suzu\"},\r\n  { name: \"suzu\",\r\n  email: \"suzue3@railstutorial.org\",\r\n  password: \"suzu\",\r\n  password_confirmation: \"suzu\"}])<\/pre>\n<h3>seed\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u3046\u6642\u306b\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002<\/h3>\n<pre>docker-compose run web bundle exec rails db:migrate:reset\r\n<\/pre>\n<h3><span class=\"description\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u4e0a\u306b\u30b5\u30f3\u30d7\u30eb\u30e6\u30fc\u30b6\u30fc\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/span><\/h3>\n<pre>docker-compose run web bundle exec rails db:seed<\/pre>\n<h3><strong>users_contoroller<\/strong>\u306b\u4ee5\u4e0b\u306e\u8a18\u8ff0\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/h3>\n<pre>before_action :admin_user, only: [:show]\r\n\r\n def destroy\r\n  @user = User.find(params[:id])\r\n  @user.destroy if correct_user || admin_user\r\n end\r\n  \r\nprivate\r\n <span class=\"k\">def<\/span> <span class=\"nf\">user_params<\/span>\r\n  <span class=\"n\">params<\/span><span class=\"o\">.<\/span><span class=\"n\">require<\/span><span class=\"p\">(<\/span><span class=\"ss\">:user<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">permit<\/span><span class=\"p\">(<\/span><span class=\"ss\">:name<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:email<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:password<\/span><span class=\"p\">,<\/span>\r\n                          :image, <span class=\"ss\">:password_confirmation<\/span><span class=\"p\">)<\/span>\r\n  <span class=\"k\">end\r\n\r\n# \u6b63\u3057\u3044\u30e6\u30fc\u30b6\u30fc\u304b\u3069\u3046\u304b\u78ba\u8a8d\u3059\u308b\r\n  def correct_user\r\n    @user = User.find(params[:id])\r\n    redirect_to(root_url) unless current_user?(@user)\r\n  end\r\n\r\n# \u7ba1\u7406\u8005\u304b\u3069\u3046\u304b\u78ba\u8a8d\u3059\u308b\r\n  def admin_user\r\n    redirect_to(root_url) unless current_user.admin?\r\n  end\r\n<\/span><\/pre>\n<p>\u4efb\u610f\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u81ea\u5206\u81ea\u8eab\u306b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7ba1\u7406\u8005\u6a29\u9650\u3092\u4e0e\u3048\u308b\u3053\u3068\u3092\u9632\u6b62\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><!--more--><\/p>\n<h3><span class=\"description\">\u30e6\u30fc\u30b6\u30fc\u524a\u9664\u7528\u30ea\u30f3\u30af\u306e\u5b9f\u88c5\u3092\u3057\u307e\u3059\u3002 (\u7ba1\u7406\u8005\u306b\u306e\u307f\u8868\u793a\u3055\u308c\u307e\u3059) <\/span><\/h3>\n<p><strong>app\/views\/users\/show.html.erb<\/strong><\/p>\n<pre>&lt;% @users.each do |user| %&gt;\r\n    &lt;%= user.name %&gt;\r\n    &lt;%= user.email %&gt;\r\n    &lt;% if user.image? %&gt;\r\n      &lt;%= image_tag user.image.thumb100.url %&gt;\r\n    &lt;% end %&gt;\r\n    &lt;% if current_user.admin? &amp;&amp; !current_user?(user) %&gt;\r\n      &lt;%= link_to \"\u3053\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u524a\u9664\u3057\u307e\u3059\", user, method: :delete,\r\n                  data: { confirm: \"\u672c\u5f53\u306b\u30e6\u30fc\u30b6\u30fc\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f\" }%&gt;\r\n    &lt;% end %&gt;\r\n  &lt;% end %&gt;<\/pre>\n<h3>\u30e6\u30fc\u30b6\u30fc\u524a\u9664\u7528\u30ea\u30f3\u30af\u306e\u5b9f\u88c5\u3092\u3057\u307e\u3059\u3002<\/h3>\n<p><strong>app\/views\/users\/edit.html.erb<\/strong><\/p>\n<pre>&lt;% if logged_in?%&gt;\r\n&lt;%= link_to \"\u9000\u4f1a\", @user, method: :delete,\r\ndata: { confirm: \"\u672c\u5f53\u306b\u9000\u4f1a\u3057\u307e\u3059\u304b\uff1f\" } %&gt;\r\n&lt;% end %&gt;<\/pre>\n<pre>sessions_helper.rb\r\n# \u30e6\u30fc\u30b6\u30fc\u304c\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u308c\u3070true\u3001\u305d\u306e\u4ed6\u306a\u3089false\u3092\u8fd4\u3059\r\ndef logged_in?\r\n  !current_user.nil?\r\nend<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2659\" src=\"https:\/\/suzutukiblog.com\/wp-content\/uploads\/2021\/04\/b22bf715f8bff9ae1807bd332fa15b86.png\" alt=\"\" width=\"957\" height=\"714\" srcset=\"https:\/\/suzutukiblog.com\/wp-content\/uploads\/2021\/04\/b22bf715f8bff9ae1807bd332fa15b86.png 957w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2021\/04\/b22bf715f8bff9ae1807bd332fa15b86-300x224.png 300w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2021\/04\/b22bf715f8bff9ae1807bd332fa15b86-768x573.png 768w, https:\/\/suzutukiblog.com\/wp-content\/uploads\/2021\/04\/b22bf715f8bff9ae1807bd332fa15b86-624x466.png 624w\" sizes=\"auto, (max-width: 957px) 100vw, 957px\" \/><\/p>\n<p>\u9000\u4f1a\u51e6\u7406\u304c\u5b9f\u88c5\u3067\u304d\u305f\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30b5\u30f3\u30d7\u30eb\u30c7\u30fc\u30bf\u751f\u6210\u30bf\u30b9\u30af\u306badmin\u30e6\u30fc\u30b6\u30fc\u30921\u4eba\u8ffd\u52a0\u3057\u307e\u3059\u3002 db\/seeds.rb User.create!([{ name: &#8220;suzutuki&#8221;, email: &#8220;example@railstutorial.or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[23,27,13],"tags":[],"class_list":["post-2655","post","type-post","status-publish","format-standard","hentry","category-docker","category-programming-note","category-rails"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts\/2655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/comments?post=2655"}],"version-history":[{"count":9,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts\/2655\/revisions"}],"predecessor-version":[{"id":5068,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/posts\/2655\/revisions\/5068"}],"wp:attachment":[{"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/media?parent=2655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/categories?post=2655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/suzutukiblog.com\/index.php\/wp-json\/wp\/v2\/tags?post=2655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}