繁体   English   中英

使用resource:model在form_for编辑中进行路由时,未定义的方法`model_path'

[英]undefined method `model_path' when using resource :model for routing in form_for edit

对此也存在一些类似的问题,但我不清楚答案。 我正在尝试使用特定模型的 CRUD操作制作一个简单的Rails应用程序。 我特别难以使用form_for函数来更新记录。

我的routes.rb文件:

Rails.application.routes.draw do
  root 'main#index'
  devise_for :users

  resource :models
  get 'main/index'

end

我的models_controller.rb

class ModelsController < ApplicationController

  def edit
    @nc = Model.find(params[:id])
  end

  def update
    @nc = Model.find(params[:id])
    @nc.update(model_params)
    if @nc.save
      flash[:success] = 'Changes saved.'
      redirect_to model_path
    else
      flash[:error] = @nc.errors.empty? ? 'Error' : @nc.errors.full_messages.to_sentence
      render :action => :edit
    end
  end

  def model_params
    params.require(:model).permit(:first_name, :last_name)
  end

end

最后是我的模型/edit.html.erb

<%= form_for @nc do |nc| %>
    <div class='container-fluid'>
      <form role='form'>
        <div class='row'>
          <div class='col-md-6'>
            <div class='form-group'>
              <%= nc.label :first_name %>
              <%= nc.text_field :first_name, :class => 'form-control', :value => @nc.first_name != nil ? @nc.first_name : '' %>
            </div>
            <div class='form-group'>
              <%= nc.label :last_name %>
              <%= nc.text_field :last_name, :class => 'form-control', :value => @nc.last_name != nil ? @nc.last_name : '' %>
            </div>
          </div>
        </div>
        <div class='row'>
          <div class='col-md-12'>
            <%= nc.submit 'Submit', class: 'btn btn-primary' %> <%= link_to 'Cancel', :back, class: 'btn btn-default' %>
          </div>
        </div>
      </form>
    </div>
<% end %>

当我实际运行此程序并尝试编辑模型时,在提交任何内容之前,我会得到:

undefined method `model_path' for #<#<Class:0x00000003cb52c0>:0x007fb7022b18b0>
Did you mean?  models_path

更改

redirect_to model_path

redirect_to @nc

如果您运行耙路径,您将看到model_path需要一个model_path使用@nc告诉Rails进行您想要的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM