0

我正在尝试使用引导模式来更新任务模型中的任务优先级字段。

这是模式中不起作用的行:

<%= simple_form_for :task, :url => url_for(:action => 'update', :controller => 'tasks'), :method => 'put' do |f| %>

任务控制器具有以下代码:

# PUT /tasks/1
# PUT /tasks/1.json
def update
  @task = Task.find(params[:id])

  respond_to do |format|
    if @task.update_attributes(params[:task])
      format.html { redirect_to @task, notice: 'Task was successfully updated.' }
      format.json { render json: @task }
    else
       format.html { render action: "edit" }
      format.json { render json: @task.errors, status: :unprocessable_entity }
    end
  end
end

我得到的错误是:

No route matches {:action=>"update", :controller=>"tasks"}

谢谢 !

PS - 创建一个弹出窗口来更改一个字段是一种更简单的方法吗?

更新 1

我的任务 rake 路线

                 tasks GET    /tasks(.:format)                   tasks#index
                     POST   /tasks(.:format)                   tasks#create
            new_task GET    /tasks/new(.:format)               tasks#new
           edit_task GET    /tasks/:id/edit(.:format)          tasks#edit
                task GET    /tasks/:id(.:format)               tasks#show
                     PUT    /tasks/:id(.:format)               tasks#update
                     DELETE /tasks/:id(.:format)               tasks#destroy
4

3 回答 3

0

这并不是真正的正确答案。但是,有时当某些事情不起作用时,您最好尝试不同的方法。

我改用 x-editable 。

于 2013-08-13T20:13:41.563 回答
0

我怀疑你的:taskor@task变量没有设置。尝试@sircapsalot 的建议并向我们展示tasks_controller#edit操作。确保在那里你正在做类似的事情@task = Task.find(params[:id])

于 2013-08-13T20:23:18.363 回答
0

尝试这个 -

<%= simple_form_for @task, :url => tasks_path, :method => :post do |f| %>
于 2013-08-12T20:48:57.663 回答