gpt4 book ai didi

ruby - Sinatra HTTP 'PUT' 方法

转载 作者:可可西里 更新时间:2023-11-01 17:04:06 27 4
gpt4 key购买 nike

此处的 PUT 操作有问题,表单已处理但未保存更新的字段。

我做了 Sinatra 用户正在做的事情,通过添加“_method”让 Sinatra 识别它是一个 HTTP PUT 操作。谁能在这里发现任何错误?

# edit
get '/entries/*/:id/edit' do
@entry = Entries.get(params[:id])
@title = "edit"
erb :edit, :layout => :edit_layout
end

# update
put '/entries/:id' do
@entry = Entries.get(params[:id])
if @entry.save
redirect "/entries/id=#{@entry.id}"
else
redirect "/enewsletters"
end
end

<!-- Edit form -->
<form action="/enewsletters/edit/<%= @entry.id %>" method="post">
<input name="_method" value="put" type="hidden"/>
<p>
<label>Content</label><br/>
<input type="text" name="entry[title]" value="<%= @enew.title %>">
</p>
<p>
<input type="submit" name="commit" value="update">
</p>
</form>

最佳答案

你似乎没有对 @entry 做任何更新,你只是从参数中获取带有 id 的特定条目。你在使用 ActiveRecord 吗?如果是这样,请尝试使用 @entry.update_attributes(params[:entry]) 而不是 @entry.save

编辑:我猜你没有使用 AR,因为我刚刚注意到 .get 调用。无论您使用什么 ORM,都必须有一种简单的方法来更新属性然后保存记录。

关于ruby - Sinatra HTTP 'PUT' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221626/

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