轨道 - 未定义的局部变量或方法"时间表"



我一直在做一个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>&nbsp;</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 %>

相关内容

最新更新