我创建了一个凝乳操作。每当我单击编辑时,显示,删除按钮,就会引起错误"无法找到'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>:            <%= 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