2016-11-20 2 views
1

안녕하세요 저는 레일스와 MVC를 처음 사용하지만 저는 배우기가 정말로 힘듭니다. 지금은 in_draft에서 published로 전환 할 때 AASM을 사용하고 있습니다. 내가 레일 콘솔의 변경을 할 수있는거야하지만 LINK_TO를 사용하려고 할 때 나는 문제의 오류가 발생했습니다[PUT] "/ articles"과 일치하는 경로가 없습니다. 경로에 put 경로를 포함했습니다.

`#/app/views/welcome/dashboard.html.erb 
<% if article.may_publish? %> 
<%= link_to 'Publish', '/articles/#{article.id}/publish', method: :put, class: "alert-link" %> 
<%end%> 

이 마일 경로

put '/articles/:id/publish', to: 'articles#publish' 

입니다 그리고 내 articles_controller 방법을 게시

def publish 
    @article.publish! 
    redirect_to @article 
end 

답변

0

당신 정말, 정말 가까이! # {}을 사용하여 추론 할 수 있으려면 큰 따옴표를 사용해야합니다.

<%= link_to 'Publish', '/articles/#{article.id}/publish', method: :put, class: "alert-link" %> 

가 있어야한다 : 오류였다

<%= link_to 'Publish', "/articles/#{article.id}/publish", method: :put, class: "alert-link" %> 
+0

감사합니다, 당신은 당신이 나에게 ''와 ''의 차이를 설명 할 수있는, 나에게 많은 도움이되었습니다. 나는 ''을 사용하는 데 익숙해졌지만 다른 하나는 몰랐다. –

+0

내 이해에서 유일한 차이점은 기사가 있다고 가정하고 "# {article.id}"를 사용하지만 '# {article.id}'을 (를) 사용하면 작동하지 않습니다. 큰 따옴표 안에 작은 따옴표를 넣는 등의 작업을 수행 할 수도 있습니다. 여기서 작은 따옴표 안에 큰 따옴표가 작동하지 않을 수 있습니다. 예를 들어 " '최고 기사의 ID가'+ # {article.id} '입니다. – Jeremy

0

rails에 오신 것을 환영합니다. member을 사용하여 RESTful put 조치를 추가 할 것을 제안합니다.

resources :articles do 
    put :publish, on: :member 
end 

Rails routing 현재 주어진 경로 문제, 제발 as: :public_article를 해결하려면.

put '/articles/:id/publish', to: 'articles#publish', as: :public_article 

즐기