我正在教自己Ruby和Rails ......直到今天,我一直感觉很好。 :)
然而,今天我遇到了一个似乎无法破解的问题。我正在通过创建博客来练习。我设置了路由和视图 - 代码将写入数据库 - 但redirect_to似乎没有正常工作。
如果用户导航到:... / article / new,他们可以输入新文章。成功提交后,应用程序应重定向到URL ../article/id,在show.html.erb上显示该文章,并刷新文章已成功保存的消息。
出于某种原因,我无法让URL重定向部分工作。文章保存,show.html.erb显示正确的消息...但网址保持../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
rake routes:
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
答案 0 :(得分:1)
您是否尝试将article_path
更改为article_url
?这可能会触发您正在寻找的行为。
答案 1 :(得分:0)
在挖掘之后,cloud9论坛上的友好用户能够帮助我解决这个问题。我在c-9窗口中运行应用程序...在实际的浏览器窗口中运行它解决了问题。
以下是在cloud9论坛上发现的对话链接:
https://community.c9.io/t/ruby-rails-redirect-to-not-working-properly/3644
再次感谢Oxyrus帮助我解决问题。