를 작동하지 않는 블록을 함께 'LINK_TO가'블록하지 않고 사용하는 경우 LINK_TO 그것은 완벽하게 작동레일 :</p> <pre><code><%= link_to "Ololo", {controller: "posts", action: "upvote", id: post.id}, method: :put, remote: true, class:"nav-link" %> </code></pre> <p>을하지만 블록을 사용하려고 할 때이 오류로 끝 :
<%= link_to {controller: "posts", action: "upvote", id: post.id}, method: :put, remote: true, class:"nav-link" do %>
<%= image_tag('icons/candy.svg', alt: "Candies", class:"rounded-circle icon-nav") %>
<%= post.get_upvotes.size %>
<% end %>
그러나, 나는 어를 알아 내기 위해 너무 안돼서,
SyntaxError (/home/alex/test/app/views/application/_votes_exp.html.erb:5: syntax error, unexpected ':', expecting '}'
...r.append= link_to {controller: controller_name, action: "up...
... ^
/home/alex/test/app/views/application/_votes_exp.html.erb:5: syntax error, unexpected ',', expecting '}'
...troller_name, action: "upvote", id: entity.id}, method: :put...
... ^
/home/alex/test/app/views/application/_votes_exp.html.erb:5: syntax error, unexpected tLABEL
...pvote", id: entity.id}, method: :put, class:"nav-link", remo...
... ^
/home/alex/test/app/views/application/_votes_exp.html.erb:5: syntax error, unexpected ',', expecting keyword_end
...method: :put, class:"nav-link", remote: true do @output_buff...
... ^
/home/alex/test/app/views/application/_votes_exp.html.erb:49: syntax error, unexpected keyword_ensure, expecting end-of-input):
그래서 문자 해시를 이해하지 못하는 것처럼 보인다 :
그리고 여기에 오류 메시지입니다 뭐가 잘못됐는데 ... 어떤 도움을 주셔서 감사합니다!
피씨 : link_to가 css 클래스를 엉망으로 만들기 때문에 문자 해시를 제거 할 수 없습니다 (주소의 일부로 클래스 추가).
routes.rb : 나는 또한 컨트롤러 이름이
UPDATE (내 예에 코드의 가독성을 위해 감소) 변수에 의해 표현되기 때문에 'upvote_post_path'같은 것을 대신 이전의 인수 스타일을 사용해야합니다 같은 것들에
Rails.application.routes.draw do
root to: "home#index"
resources :posts do
member do
put "upvote", to: "posts#upvote"
end
end
end
대신 컨트롤러, 동작 및 ID를 전달하는 경로를 전달할 수 있습니다. 경로를 추가 할 수 있습니까? –
예, 물론입니다! 나는 그 질문을 갱신 할 것이다. –