Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果。。else语句_Ruby On Rails_View_If Statement_Switch Statement - Fatal编程技术网

Ruby on rails 如果。。else语句

Ruby on rails 如果。。else语句,ruby-on-rails,view,if-statement,switch-statement,Ruby On Rails,View,If Statement,Switch Statement,我正试图将一个价值回归到我的观点中,尽管没有取得太大的成功 错误 未定义的局部变量或方法“schedule”# 模型 帮手 看法 所有这些都返回以下错误 计划#索引中的名称错误 显示/Users/**/Sites/rails\u projects/**/app/views/schedules/index.html.erb,其中第46行出现: 43: <% @schedules.each do |schedule| %> 44: &l

我正试图将一个价值回归到我的观点中,尽管没有取得太大的成功

错误 未定义的局部变量或方法“schedule”#

模型 帮手 看法

所有这些都返回以下错误

计划#索引中的名称错误

显示/Users/**/Sites/rails\u projects/**/app/views/schedules/index.html.erb,其中第46行出现:

43:           <% @schedules.each do |schedule| %>
44:               <tr>
45:                 <td><%= schedule.event %></td>
46:                 <td><strong><%= win_lose_tie_display(schedule.win_lose_tie) %></strong> <%=  schedule.for %> &mdash; <%= schedule.against %></td>
47:                 <td><%= schedule.opponent %></td>
48:                 <td><%= schedule.date.to_formatted_s(:event_date) %>
49:                 </td>
43:
44:               
45:                 
46:&mdash;
47:                 
48:                 
49:                 
这方面的任何帮助都将是巨大的


提前感谢

在您的
输赢
方法中,与
自我
交换
时间表

这是因为
win\u lose\u tie
是调度对象的实例方法。您已经在schedule对象的上下文中,因此无需编写
schedule.
。事实上,这将引用不存在的
*您的_schedule\u object*.schedule


作为站点提示:由于您只读取值,因此甚至可以完全忽略
self
。但是,如果您指定了值,则需要
self

您需要提供有关错误的更多信息。单击应用程序跟踪或完整跟踪,前几行应提供必要的信息。你的win\u lose\u tie看起来很尴尬。尝试重构它,使其具有更多的行或至少更多的大括号。应用程序跟踪返回以下
app/models/schedule.rb:12:in
win\u lose\tie'app/views/schedules/index.html.erb:46:in
app\u views\u schedules\u index\html\u erb\uu 1705540283\u 2185334800'app/views/schedules/index.html.erb:43:in
app/views/schedules/index.html.erb:43:in
\u app\u views\u schedules\u index\u html\u erb\u 1705540283\u 2185334800'app/controllers/schedules\u controller.rb:7:in
index'@ChristophPetschnig我已经重构了代码,并包含了更多信息这是你的日程模型吗?在这种情况下,在您的
win\u lose\u tie
方法中,与
self
交换
schedule
。如果它解决了您的问题,我会将此作为答案发布。@blackbird07成功了,在重做if..else语句后,我更新了上面的代码
    def win_lose_tie_display(value)
    case value
      when :win
        "W"
      when :lose
        "L"
      when :tie
        "T"
      else
        "unknown win/lose/tie value"
    end
  end
<%= win_lose_tie_display(schedule.win_lose_tie) %>
43:           <% @schedules.each do |schedule| %>
44:               <tr>
45:                 <td><%= schedule.event %></td>
46:                 <td><strong><%= win_lose_tie_display(schedule.win_lose_tie) %></strong> <%=  schedule.for %> &mdash; <%= schedule.against %></td>
47:                 <td><%= schedule.opponent %></td>
48:                 <td><%= schedule.date.to_formatted_s(:event_date) %>
49:                 </td>