在RUBY ON RAILS

时间:2015-07-09 15:52:12

标签: ruby-on-rails

更新方法不会更新记录,而是创建一个新记录。

如何更改代码才能正常工作?

控制器位:

def edit
    @post = Post.find(params[:id])
end

def update
    if @post.update(post_params)
        redirect_to @post
    else
        render 'edit'
    end
end

编辑视图:

= form_for :post, url: posts_path do |f|

%p
    = f.label :title
    = f.text_field :title

%p
    = f.label :content
    = f.text_area :content

%p
    = f.submit

1 个答案:

答案 0 :(得分:0)

更改表单标记:

= form_for @post do |f|

它没有使用您在控制器中设置的变量,因此它不知道它不是新对象。

只要您在路线文件中定义了资源,您也不需要指定网址。