ruby on railsについてのご質問です。
現在ブログ系サイトを作成しているのですが、「Routing Error」が解決できずにいます。
編集に入る画面は「views/page/page_index.html.erb」
編集の投稿画面は「views/page/edit.html.erb」
編集の投稿完了画面は「views/page/update.html.erb」
としています。
DBではblogsにブログに反映するための「id、title.image,content」などが入っています。
DBのarticlesではblogsのidと連携させてblogsが更新すると同じ内容で自動的にブラウザの「title.image,content」が変更するようにしています。
「page_index.html.erb」は編集用のボタンを表示するように作成したものです。
「edit.html.erb」で編集したいブログを選び、編集が完了すると共にDBのblogsも更新する設定を予定しています。
コントローラーとそれをつなぐform_tagの書き方とルートに関しての理解が浅い為このようなことが起こっているのですが、だいぶ混乱しています。。
申し訳ありませんが、何かしらアドバイスを頂ければと思います。
「views/page/page_index.html.erb」
<ul> <li> <%= link_to '編集', "/pages/#{blogs.id}/edit", method: :get %> </li> </ul>
「views/page/edit.html.erb」
<%= form_tag("/peges/#{blog.id}", method: :patch ) do %> <h3 class="newH3">編集する</h3> <input placeholder="Title" type="text" name="title"> <input placeholder="Image Url" type="text" name="image"> <textarea cols="30" name="content" placeholder="text" rows="10"></textarea> <input type="submit" value="SENT"> <% end %>
「pages_controller」
def pages_index @articles = Article.all end def edit @blog = Blog.find(params[:id]) end def update @page_update = Blog.find(params[:id]) if @page_update.id == Blog.id @page_update.update(blog_params) end end
「views/page/update.html.erb」
<div class="endCont inner"> <div class="endSuccess"> <h3 class="endH3">編集が完了しました。</h3> <div class="endbtn"> <a class="endbtnA" href="../">Topへ戻る</a> </div> </div> </div>
「routes.rb」
Rails.application.routes.draw do get 'articles/index' root "articles#index" get 'blogs/new'=>'blogs#new' post'blogs/create' =>'blogs#create' get 'pages/pages_index' => 'pages#pages_index' get 'pages/:id/edit' => 'pages#edit' patch'pages/:id' =>'pages#update' get 'articles/:id'=>'articles#show' resources :blogs do collection do get 'search' end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/17 03:16