Ruby on rails 没有路径匹配[PUT]”/文章;但我在路线中包括了put路线

Ruby on rails 没有路径匹配[PUT]”/文章;但我在路线中包括了put路线,ruby-on-rails,routes,aasm,Ruby On Rails,Routes,Aasm,嗨,我是rails和MVC的新手,但我正在努力学习。现在,我正在使用AASM从初稿过渡到出版。 我可以在rails控制台中进行更改,但是当尝试使用链接时,我遇到了问题中的错误 `#/app/views/welcome/dashboard.html.erb <% if article.may_publish? %> <%= link_to 'Publish', '/articles/#{article.id}/publish', method: :put, class: "ale

嗨,我是rails和MVC的新手,但我正在努力学习。现在,我正在使用AASM从初稿过渡到出版。 我可以在rails控制台中进行更改,但是当尝试使用链接时,我遇到了问题中的错误

`#/app/views/welcome/dashboard.html.erb
<% if article.may_publish? %>
<%= link_to 'Publish', '/articles/#{article.id}/publish', method: :put, class: "alert-link" %>
<%end%>
以及我的文章的发布方法

def publish
    @article.publish!
    redirect_to @article
end

欢迎来到rails。我建议您使用
member
添加
restfulput
操作

要解决当前给定路线的问题,请
as::public\u article

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

享受

你真的非常接近!您需要使用双引号才能使用{}进行推断


应该是:

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


谢谢,这就是错误所在,你帮了我很多忙,你能给我解释一下“”和“”之间的区别吗。我已经习惯使用“”,但我不知道另一个。从我的理解来看,唯一的区别是,假设文章存在,使用“#{article.id}”有效,但使用“#{article.id}”无效。您还可以做一些事情,比如在双引号中放入单引号,其中单引号中的双引号可能不起作用。例如,“最佳文章的id为'+#{article.id}”
put '/articles/:id/publish', to: 'articles#publish', as: :public_article
<%= link_to 'Publish', '/articles/#{article.id}/publish', method: :put, class: "alert-link" %>
<%= link_to 'Publish', "/articles/#{article.id}/publish", method: :put, class: "alert-link" %>