gpt4 book ai didi

ruby-on-rails - NoMethodError 在我的一个模型中 #show actions

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:19 27 4
gpt4 key购买 nike

我的 show.html.erb 文件中有以下代码:

<p>
<b>Status:</b>

<% if @server.serverUp?.to_s == "Up" %>
<% @server.update_attribute(@server.serverStatus, 'Up') %>
<span style="color: green;"> <%= @server.serverUp? %></span>
<% else %>
<span style="color: #ff0000;"> <%= @server.serverUp? %></span>
<% end %>
</p>

我主要关心的是 <% @server.update_attribute(@server.serverStatus, 'Up') %> 这行这使我的应用程序无法正常工作。这一行应该保存服务器的状态,无论是“Up”还是“Down”,并将其保存在“serverStatus”列下的“servers”表中。

但是,当我转到 http://localhost:3000/servers/id_of_server 时,其中 'id_of_server' 是 1-300 之间的数字,出现以下错误消息:

NoMethodError in Servers#show

Showing C:/SIS/app/views/servers/show.html.erb where line #18 raised:

undefined method `=' for #<Server:0x60b9358>
Extracted source (around line #18):

15: <p>
16: <b>Status:</b>
17: <% if @server.serverUp?.to_s == "Up" %>
18: <% @server.update_attribute(@server.serverStatus, 'Up') %>
19: <span style="color: green;"> <%= @server.serverUp? %></span>
20: <% else %>
21: <span style="color: #ff0000;"> <%= @server.serverUp? %></span>

我似乎不理解错误消息,因为我没有在提供的代码摘录中使用等号。任何帮助将不胜感激。

如果你们需要更多信息,请告诉我。

提前致谢

编辑:虽然我在做这件事,但我只是想问一下我是否没有通过将这种类型的代码放入 show.html.erb 文件而不是遵循 RoR 约定别的地方?因为在同一个文件中我还有另一种算法,它读取模型的所有属性,将其放入数组中,并仅显示唯一值。

谢谢

最佳答案

你应该写:

<% @server.update_attribute(:serverStatus, 'Up') %>

是的:您不应该更新 View 中的模型。在你的情况下,它可以干净地存在于 before_save 中,或者为什么不在我猜的模型中的 after_initialize 回调中。

最后:在 Ruby 中,惯例是蛇形大小写,所以 server_status 而不是 serverStatus

关于ruby-on-rails - NoMethodError 在我的一个模型中 #show actions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7041658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com