我一直在做一个Rails项目。刚开始学习来自Java背景的rails
我正在创建一个时间表模型和控制器,用户可以将他们的时间表上传到网站上。
错误我得到它
undefined local variable or method `timetable' for #<#<Class:0x007fcde39dcbd8>:0x007fcde38b0ea8>
时间表控制器
class TimetablesController < ApplicationController
def index
@timetables = Timetable.all
end
def new
@timetable = Timetable.new
end
def create
@timetable = Timetable.new(timetable_params)
if @timetable.save
redirect_to timetable_path, notice: "The resume #{@timetable.name} has been uploaded."
else
render "new"
end
end
def destroy
@timetable = Timetable.find(params[:id])
@timetable.destroy
redirect_to timetables_path, notice: "The timetable #{@timetable.name} has been deleted."
end
private
def timetable_params
params.require(:timetable).permit(:name, :attachment)
end
end
时间表索引
<% if !flash[:notice].blank? %>
<div class="alert alert-info">
<%= flash[:notice] %>
</div>
<% end %>
<br />
<%= link_to "New Timetable", new_timetable_path, class: "btn btn-primary" %>
<br />
<br />
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Name</th>
<th>Download Link</th>
<th> </th>
</tr>
</thead>
<tbody>
<% @timetables.each do |resume| %>
<tr>
<td><%= timetable.name %></td>
<td><%= link_to "Download Resume", timetable.attachment_url %></td>
<td><%= button_to "Delete", timetable, method: :delete, class: "btn btn-danger", confirm: "Are you sure that you wish to delete #{timetable.name}?" %></td>
</tr>
<% end %>
</tbody>
</table>
中继路由条目
resources :timetables, only: [:index, :new, :create, :destroy]
我想我的问题是范围,但现阶段我对铁路不太熟悉。
感谢
在索引操作中,您可以定义时间表集合,如下所示:
@timetables = Timetable.all
要在视图中使用该实例变量,您需要遍历时间表,将每个时间表命名为resume
。我想你希望它是时间表:
<% @timetables.each do |timetable| %>
<tr>
<td><%= timetable.name %></td>
<td><%= link_to "Download Resume", timetable.attachment_url %></td>
<td><%= button_to "Delete", timetable, method: :delete, class: "btn btn-danger", confirm: "Are you sure that you wish to delete #{timetable.name}?" %></td>
</tr>
<% end %>
你必须将简历改为时间表,因为没有时间表变量。
<% @timetables.each do |timetable| %>
<tr>
<td><%= timetable.name %></td>
<td><%= link_to "Download Resume", timetable.attachment_url %></td>
<td><%= button_to "Delete", timetable, method: :delete, class: "btn btn-danger", confirm: "Are you sure that you wish to delete #{timetable.name}?" %></td>
</tr>
<% end %>