【发布时间】:2021-01-31 19:36:47
【问题描述】:
我有一个创建任务的表单。
控制器:
class ProjectsController < ApplicationController
before_action :authenticate_user!
def index
@projects = Project.where(user_id: current_user.id)
end
def new
@project = Project.new
end
def create
@project = Project.new
@project.title = project_params[:title]
@project.user_id = current_user.id
if @project.save
redirect_to root_url
else
flash[:error] = @project.errors.to_a
render :new
end
end
def destroy
@project = current_user.projects.find_by(params[:id])
flash[:error] = @project.errors.to_a unless @project.destroy
redirect_to root_url
end
def edit
@project = current_user.projects.find_by(params[:id])
render :edit
end
def update
end
private
def project_params
params.require(:project).permit(:title)
end
end
我的路线:
Rails.application.routes.draw do
devise_for :users
resources :projects
root 'projects#index'
end
new.html.haml
.create_project_form
= form_with model: @project, url: "/projects", method: :post do |form|
= form.text_field :title, { placeholder: 'New Project' }
= form.submit 'Create project'
我可以创建任务,但我不能更新它。
edit.html.haml
.edit_project_form
= form_with model: @project, url: "/projects", method: :put do |form|
= form.text_field :title, { placeholder: 'Edit' }
= form.submit 'Update project'
当我提交表单时,出现错误 - No route matches [PUT] "/projects"
据我所知,我必须在某处传递一个 id
= form_with model: @project, url: "/projects", method: :put do |form|
但我找不到合适的方法来做到这一点 请帮忙
【问题讨论】:
标签: ruby-on-rails ruby forms haml