gpt4 book ai didi

ruby-on-rails - 简单的 CRUD 不会创建对象

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

我试图通过开始从事一个小项目来接触 Rails 和 Ruby,但遇到了一个我无法解决的问题。

当我尝试为对象创建一个简单的 CRUD 时,创建部分不再有意义了。

def create
if (params.nil? || params[:board].nil?)
return render status: 400
end
@board = Board.create(params["board"]["title"], params["board"]["description"])
#...
end

无论出于何种原因,它都会给我一个ArgumentError“参数数量错误(给定 2,预期 0..1)”。所以我想我会自己创建它并使用 save-Method 将它保存到数据库中,但这也没有成功:

@board = Board.new(params["board"]["title"], params["board"]["description"])
@board.save!

这给了我 NoMethodError “undefined method `reverse_merge!'对于 nil:NilClass"

我现在尝试了很多调试,但无法弄清楚。不,它不是零,即使它说它正在使用 NilClass。

编辑:表单代码(查看)

<%= form_tag :action => 'create' do %>

<div class="fluid-container">
<p><label for="board_title">Title</label></p>
<%= text_field 'board', 'title' %>
</div>

<div class="fluid-container">
<p><label for="board_description">Description</label></p>
<%= text_area 'board', 'description' %>
</div>

<%= submit_tag %>
<% end %>

我真的不知道发生了什么,希望有人能提供帮助。提前致谢 - PreFiX/Dominik

最佳答案

代替

@board = Board.create(params["board"]["title"], params["board"]["description"])

尝试

 @board = Board.create(title: params["board"]["title"], description: params["board"]["description"])

你应该也能做到这一点

@board = Board.create(params[:board])

但出于安全原因,这是行不通的 http://api.rubyonrails.org/classes/ActionController/Parameters.html

关于ruby-on-rails - 简单的 CRUD 不会创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937807/

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