gpt4 book ai didi

ruby-on-rails - Ruby - 保存模型在浏览器中显示获取 url

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

  • ruby 2.2.4
  • rails 4.2.6
  • PostgreSQL 9.5

我正在尝试保存一个简单的模型,但是当我提交表单时,我的浏览器 url 显示这个“http://localhost:8080/notes/new?utf8=%E2%9C%93&authenticity_token=z0cyVNfUKYWDSDASDWFFZ96zj29UTtDYe8dLlKrI6Mbznb2SrTWNm%2BQ91D2s2AASD2345Fl3fTOneCC2dNg%3D%3D&note%5Btitulo%5D=ddddddd&note%5Bconteudo%5D=dddddddddddddddddd&commit=Create

我很好奇这个,因为其他项目,它有相同的方法,相同的路线,唯一的区别是只有一列的模型,但它工作正常。

def change
create_table :notes do |t|
t.text :titulo
t.text :conteudo
t.timestamps null: false
end

我的 Controller :notes_controller.rb

  def new
@note = Note.new
end

def create
@note = Note.new(note_params)
if @note.save
redirect_to '/'
else
render 'new'
end
end

private
def note_params
params.require(:note).permit(:titulo,:conteudo)
end

我的表格

<%= form_for(@note) do |f| %>
<div class="field">
<%= f.label :titulo %><br>
<%= f.text_area :titulo %>
<%= f.label :conteudo %><br>
<%= f.text_area :conteudo %>
</div>
<div class="actions">
<%= f.submit "Create" %>
</div>
<% end %>

我的路线

Rails.application.routes.draw do
root 'notes#index'
get 'notes/new' => 'notes#new'
post 'notes' => 'notes#create'

我看到了这个帖子 Rails form issuing GET request instead of POST request

但对我不起作用。

编辑:

感谢 Anthony E,我修复了它,他的回答让我回顾代码并意识到我有一个表单中的表单。外部形式在 application.html.erb 中。

感谢大家。

最佳答案

Rails 无法从您的模型中推断出合适的表单路径。尝试在您的 form_for 中明确设置表单 URL 和提交方法:

form_for @note, url: "/notes", as: :note, html: { method: :post } do |f|
end

或者,使用足智多谋的路由可能更简单:

在 routes.rb 中:

resources :notes, only: [:new, :create, :index]

这将创建以下路由:

GET /notes/new  # Maps to NotesController#new
POST /notes # Maps to NotesController#create
GET /notes # Maps to NotesController#index

关于ruby-on-rails - Ruby - 保存模型在浏览器中显示获取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707980/

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