ActiveRecord::RecordNotFound 在 PracticeController#show 中找不到 'id'=edit 的欢迎
ActiveRecord::RecordNotFound in PracticeController#show Couldn't find Welcome with 'id'=edit
我创建了一个 CURD 操作。每当我单击编辑、显示、删除按钮时,它都会引发错误 "Couldn't find Welcome with 'id'=edit" "Couldn't find Welcome with 'id'=show" "Couldn't find Welcome with 'id'=destroy"。我一直在努力解决这些错误,但我越来越困惑。请帮忙!
Practice.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>:            <%= f.text_field :name %> </br></br>
<b><i>Address</b></i>:         <%= f.text_area :address %> </br></br>
<b><i>City</b></i>:               <%= 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
我创建了一个 CURD 操作。每当我单击编辑、显示、删除按钮时,它都会引发错误 "Couldn't find Welcome with 'id'=edit" "Couldn't find Welcome with 'id'=show" "Couldn't find Welcome with 'id'=destroy"。我一直在努力解决这些错误,但我越来越困惑。请帮忙! Practice.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>:            <%= f.text_field :name %> </br></br>
<b><i>Address</b></i>:         <%= f.text_area :address %> </br></br>
<b><i>City</b></i>:               <%= 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