2011-09-30 2 views

답변

1

기본적으로 레일스는 "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 %> 
1

각 작업의 용도와 관련하여 약간 혼란스러워 보입니다. 다음은 전형적인 편안하고 사용의 간략한 요약이다 :

지수는 -> 항목의 목록을
새로 만들기/편집보기 -> 컨트롤러 액션 - 항목
/업데이트 만들기 추가하거나 편집> 양식을 항목이 작성/업데이트되는 곳

경로 파일이 색인을 생성하지 않는 이유는 색인이 일반적으로 작성되거나 업데이트되는 작업이 아니기 때문입니다. 가장 좋은 방법은 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 당신은 newedit를 액세스, 또는 어디든지 할 수 있습니다 그렇지 않으면 시스템의 게시물을 조작해야합니다.

+0

내가 원하는 게시물에 관한 정보를 인쇄하여 내가 색인으로 라우팅 한 이유를 설명합니다. 나는 'application.html.erb'의 형태로 사용 된 값을 검색하고 논리에 따라 일부 게시물을 인쇄하기위한 로직을 설정하려고합니다. – Ava

+0

이 경우 정보를'create'에 보내면 완료되면'index'로 연결됩니다. – sscirrus

+0

자동으로 처리 되나요? 아니면 명시 적으로 언급해야합니까? – Ava

관련 문제