1

嗨,我是 Rails 和 MVC 的新手,但我正在努力学习。现在我正在使用 AASM 从 in_draft 过渡到已发布。我能够在 Rails 控制台中进行更改,但是在尝试使用 link_to 时出现问题中的错误

`#/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
4

2 回答 2

1

你真的,真的很亲近!您需要使用双引号才能使用 #{} 进行推断。

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

应该:

<%= link_to 'Publish', "/articles/#{article.id}/publish", method: :put, class: "alert-link" %>
于 2016-11-21T00:38:27.743 回答
0

欢迎来到铁轨。我想建议您member用于添加RESTful put操作。导轨路由

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

要解决您当前给定的路线问题,请as: :public_article

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

享受

于 2016-11-20T07:24:22.563 回答