ActiveRecord::RecordNotFound in PracticeController#show 找不到 Welcome with 'id'=edit



我创建了一个凝乳操作。每当我单击编辑时,显示,删除按钮,就会引起错误"无法找到'ID'= edit" = edit的欢迎。=销毁"。我一直在尝试解决这些错误,但是我变得越来越困惑。请帮忙!练习.controller

class PracticeController < ApplicationController
	def index
		 @welcome= Welcome.all;
	end
	
	def show
		 @welcome = Welcome.find(params[:id])
	end
	def new
		@welcome= Welcome.new;
	end
	def edit
		@welcome = Welcome.find(params[:id])	
	end
	def create
		@welcome=Welcome.new(params.require(:welcome).permit(:name,:address,:city)) ;
			if @welcome.save
		#redirect_to({ action: 'practices' }, alert: "Record saved")
		redirect_to :root
			else
			render :action=>"new"
	end
	def update
		@welcome = Welcome.find(params[:id])
 
		if @welcome.update(welcome_params)
		  redirect_to @welcome
		else
		  render 'edit'
		 end
	end
	def destroy
		@welcome = Welcome.find(params[:id])
		@welcome.destroy
 
		redirect_to welcome_path
	end
  end
end

**

<h3>Please fill the following details</h3>
<hr>
<%= form_with  scope: :welcome , local: true do |f| -%>
<b><i>Name</b></i>:&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp<%= f.text_field :name %> </br></br>
<b><i>Address</b></i>:&nbsp &nbsp &nbsp &nbsp&nbsp <%= f.text_area :address %> </br></br>
<b><i>City</b></i>:&nbsp &nbsp &nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <%= f.text_field :city %> </br></br>
<%= f.submit "Submit", class: "btn-submit" %>
<% end %>
<h2>Listing details</h2>
 
<table>
  <tr>
    <th>Name</th>
    <th>Address</th>
    <th> City</th>
  </tr>
 
  <% @welcome.each do |welcome| %>
    <tr>
      <td><%= welcome.name %></td>
      <td><%= welcome.address %></td>
	  <td><%= welcome.city %></td>
      <td><%= link_to 'Show', {:controller => "practice", :action => "show", :welcome => welcome.id } %></td>
	  <td><%= link_to 'Edit', {:controller => "practice", :action => "edit", :welcome=> welcome.id } %></td>
	  <td><%= link_to 'Delete', {:controller => "practice", :action => "destroy", :welcome=> welcome.id },
			  method: :delete,
			  data:{confirm:'Confirm Delete?'}%></td>
    </tr>
  <% end %>
</table>

** edit.html.erb

<h1>Edit Information</h1>
 
<%= form_with(controller: :action=>"edit", local: true) do |form| %>
 
  <p>
    <%= form.label :name %><br>
    <%= form.text_field :name %>
  </p>
 
  <p>
    <%= form.label :address %><br>
    <%= form.text_area :address %>
  </p>
   <p>
	<%=form.label :city %><br>
	<%=form.text_field :city %>
   </p>
  <p>
    <%= form.submit %>
  </p>
 
<% end %>

以下是有问题的行:

在视图中

<td><%= link_to 'Show', {:controller => "practice", :action => "show", :welcome => welcome.id } %></td>

在控制器中

def show
         @welcome = Welcome.find(params[:id])
end

您正在查看:welcome中的ID参数,并尝试通过:id中的控制器访问该参数,这引起了问题。在下面修改控制器以修复它。

def show
   @welcome = Welcome.find(params[:welcome])
end

相关内容

最新更新