我试图创建一个博客。我有一个模型post
,我想要分配他,状态'草稿'。为此,我添加了布尔字段field :draft, type: Boolean, default: false
和方法控制器to_draft
def to_draft
@post = Post.find(params[:post_id] || params[:id])
@post.draft = true
@post.save
redirect_to posts_path
end
和帮助者link_to,当我点击链接时,发布分配草稿状态
= link_to 'To draft', post_to_draft(@post), method: :put
rake routes
post_to_draft PUT /posts/:post_id/to_draft(.:format) posts#to_draft
但是口译员给我看错了
undefined method `post_to_draft' for #<#<Class:0x007ff7096ddd70>:0x000000064b5068>
我做错了吗?
答案 0 :(得分:1)
post_to_draft
只是一个路线名称。您需要使用_url
或_path
附加此路由名称以调用您所关注的帮助程序。请参考链接的Routing指南。
更新link_to
电话如下:
= link_to 'To draft', post_to_draft_path(@post), method: :put
答案 1 :(得分:0)
你也可以把它写成
= link_to 'To draft', [:to_draft, @post], method: :put