私はRubyとRailsを教えています...今日まで、それについてはかなり良い感じがしています。 :)Ruby - redirect_toは正しいページにリダイレクトされますが、URLは変更されていません
しかし、今日私は問題に遭遇しました。私はブログを作成して練習しています。ルートとビューを設定しました。コードはデータベースに書き込まれますが、redirect_toは正しく動作していないようです。
ユーザが.../article/newに移動すると、新しい記事を入力できます。提出が成功すると、アプリはURL ../article/idにリダイレクトし、記事をshow.html.erbに表示し、記事が正常に保存されたというメッセージをフラッシュします。
何らかの理由で、URLリダイレクト部分が機能しなくなってしまいます。記事が保存されると、show.html.erbに適切なメッセージが表示されますが、urlは../article/newのままです。リダイレクトが機能しない場合、他のアクションが異なるURL(例えば、../article/id/edit)を必要とするため、残りのアプリケーションは動作しません。
私は表示ページで
<%= @article.inspect %>を使用していますが、すべてが正しく保存されているように見えます(これは正しいビューを呼び出すためです)。
非常に歓迎すべきことです。私は本当にRubyとRailsを勉強していることに興奮しており、これをやり遂げることを楽しみにしています。
articles_controller.rb:
class ArticlesController < ApplicationController
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
flash[:notice] = "Article was successfully created"
redirect_to article_path(@article)
else
render 'new'
end
end
def show
@article = Article.find(params[:id])
end
private
def article_params
params.require(:article).permit(:title, :description)
end
end
すくいルートは:
Prefix Verb URI Pattern Controller#Action
root GET / pages#home
about GET /about(.:format) pages#about
articles GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
new_article GET /articles/new(.:format) articles#new
edit_article GET /articles/:id/edit(.:format) articles#edit
article GET /articles/:id(.:format) articles#show
PATCH /articles/:id(.:format) articles#update
PUT /articles/:id(.:format) articles#update
DELETE /articles/:id(.:format) articles#destroy
アプリケーションでターボリンクを使用していますか? – Ilya
私はそうではありません...私は、クラウド9のIDEがあらかじめインストールされているものであれば何でも構いません。 –