gpt4 book ai didi

ruby-on-rails - *Show* View 始终显示数据库中的第一个 pin(项目)

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:12 24 4
gpt4 key购买 nike

我正在开发一个类似 pinterest 的应用程序,最近遇到了一个问题。当作为登录用户我尝试通过“显示”访问一个 pin 时,它会在 url 中为我提供正确的 ID 号,例如<强> http://localhost:3000/pins/7 但描述来自数据库中的第一项。

这是我的显示 View 代码:

<%= image_tag @pin.image.url %>

<p>
<strong> Description: </strong>
<%= @pin.description %>
</p>

<% if @pin.user == current_user %>
<%= link_to 'Edit', edit_pin_path(@pin) %>
<% end %>

<%= link_to 'Back', pins_path %>

另一方面,当我尝试通过 heroku 通过 show 或编辑访问它时,它以以下消息结束:

很抱歉,出了点问题。如果您是应用程序所有者,请查看日志以获取更多信息。”

这是我的 github 仓库 https://github.com/LeJaques/myfirstapp_new

我将不胜感激!

最佳答案

您的问题似乎出在 PinController 中的 set_pin 方法中。

private
# Use callbacks to share common setup or constraints between actions.
def set_pin
@pin = Pin.find_by(params[:id])
end

当简单地将 params[:id] 传递给 find_by 时,您会遇到问题。你应该使用

@pin = Pin.find(params[:id])

@pin = Pin.find_by(id: params[:id])

您在后面的 correct_user 方法中奇怪地使用了后者。

与您的问题无关,但在未来,与其链接到您的 github 项目并让我们深入研究代码,不如将相关代码发布到您的问题中。这样做将有助于您在未来更快地获得答案;如果您的 set_pin 方法从一开始就在您的问题中,这个问题将在五分钟内得到回答(而不是半小时以上)。

关于ruby-on-rails - *Show* View 始终显示数据库中的第一个 pin(项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30080877/

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