내 application.html.erb에이 양식이 있습니다. 나는이가 posts->create
대신 posts->index
로 보내지고 이유를 이해 해달라고form_tag 작업이 레일에서 작동하지 않습니다.
<%= form_tag(:action=>"index", :controller=>"posts") %>
<p>
// code here
</p>
?
감사합니다.
내 application.html.erb에이 양식이 있습니다. 나는이가 posts->create
대신 posts->index
로 보내지고 이유를 이해 해달라고form_tag 작업이 레일에서 작동하지 않습니다.
<%= form_tag(:action=>"index", :controller=>"posts") %>
<p>
// code here
</p>
?
감사합니다.
기본적으로 레일스는 "RESTful"웹 서비스 아키텍처를 준수합니다. REST와 Rails에는 리소스와 관련하여 서버와 상호 작용하는 7 가지 방법이 있습니다. 현재 코드에서 폼의 동작을 인덱스로 지정하는 것은 의미가 없습니다. 레일스의 폼 헬퍼는 POST, PUT 또는 DELETE 중 하나 일 수 있습니다. 이 게시물을 만들고 싶었 경우
, 다음 인덱스로 리디렉션, 당신은 해당 컨트롤러 액션에서 수행 할 수 있습니다 :
class PostsController < ApplicationController
...
def create
@post = Post.new
respond_to do |format|
if @post.save
format.html { redirect_to(:action => 'index') }
end
end
를 양식의 모습 동안 :
<% form_for @post do |f| %>
# put whatever fields necessary to create the post here
<% end %>
각 작업의 용도와 관련하여 약간 혼란스러워 보입니다. 다음은 전형적인 편안하고 사용의 간략한 요약이다 :
지수는 -> 항목의 목록을
새로 만들기/편집보기 -> 컨트롤러 액션 - 항목
이/업데이트 만들기 추가하거나 편집> 양식을 항목이 작성/업데이트되는 곳
경로 파일이 색인을 생성하지 않는 이유는 색인이 일반적으로 작성되거나 업데이트되는 작업이 아니기 때문입니다. 가장 좋은 방법은 RESTful으로가는 것입니다. 시스템을 설치하는 가장 좋은 방법은 매우 이례적인 상황을 가지고하지 않는 한 이런 작은 아마도 :
# routes.rb
resources :posts
# application.html.erb (or better: posts/_form.html.erb).
<% form_for @post do |f| %>
<% end %>
# posts controller, whichever action you want to use
def new
@post = Post.new
end
라는 부분에서 양식을 놓음으로써 form
당신은 new
에 edit
를 액세스, 또는 어디든지 할 수 있습니다 그렇지 않으면 시스템의 게시물을 조작해야합니다.
내가 원하는 게시물에 관한 정보를 인쇄하여 내가 색인으로 라우팅 한 이유를 설명합니다. 나는 'application.html.erb'의 형태로 사용 된 값을 검색하고 논리에 따라 일부 게시물을 인쇄하기위한 로직을 설정하려고합니다. – Ava
이 경우 정보를'create'에 보내면 완료되면'index'로 연결됩니다. – sscirrus
자동으로 처리 되나요? 아니면 명시 적으로 언급해야합니까? – Ava