rails의 redirect_to
상황
레코드를 게시하고 게시 후 레코드 목록 화면으로 이동합니다.
레코드의 투고는 되어 있지만, 페이지 천이를 할 수 없다.
(새 페이지에서 크리타 액션을 통해 색인 페이지로 마이그레이션하는 동안 오류가 발생)
article_cnotroller.rb
class ArticleController < ApplicationController
def index
@article = Article.all
end
def new
@article = Article.new()
end
def create
@article = Article.new(article_params)
if @article.save
render 'index'
else
render 'new'
end
end
private
def article_params
params.require(:article).permit(:main_text, :title, :header_photo, :maintext_photo)
end
end
간단하지만 저장 후 index 페이지로 마이그레이션하려고 생각하고 위의 코드를 작성합니다.
이쪽도 간단하게, 투고 내용의 타이틀만을 표시시키는 코드로 하고 있습니다.
index.html.erb
<% @article.each do |article| %>
<tr>
<td><%= article.title %></td>
</tr>
<% end %>
<br>
오류 내용은 스쿠쇼와 같습니다.
오류 내용은 each를 사용할 수 없다고 나옵니다. .
투고 내용의 디버그를 취해도, 제대로? 배열이 투고 할 수 있고 배열의 에러가 아닌 것 같습니다! 하지만 무엇이 원인인지 모른다! 상태였습니다.
게시는 가능하지만 create 액션을 통과했을 때,
<% @article.each do |article| %>
배열이 들어 있지 않은 것은 확실하고, 어딘가 수상.
render 'index'
범인은 이 녀석이다! 라고까지 알면, 에러의 내용은 곧 알았습니다! !
render로 액션을 호출하면 페이지의 데이터만 호출됩니다!
오류 페이지에서 보이지 않았지만 아마도 http://localhost:3000/article/inde가 아니라 http://localhost:3000에 index.html.erb 페이지가 호출됩니다. 해야.
그래서 이렇게 다시 썼습니다.
class ArticleController < ApplicationController
def index
@article = Article.all
end
def new
@article = Article.new()
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to :action => 'index'
else
render 'new'
end
end
private
def article_params
params.require(:article).permit(:main_text, :title, :header_photo, :maintext_photo)
end
end
redirect_to에서 액션을 호출하면 URL이 있는 페이지에서 호출되는 것 같습니다.
꽤 참담한 오류 내용이었습니다.
재미있어! ! !
Reference
이 문제에 관하여(rails의 redirect_to), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gussan-dayo/items/97c6e65c37702ab44407텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)