0
我很难找出这个错误来自哪里...试图让用户选择在我的Rails 5应用程序中更改一些细节。代码正在工作,这是最令人沮丧的部分。它正在工作,它更新数据库,但它也会抛出一个“未定义的方法`[]'nil:NilClass”错误。未定义的方法`[]'为零:NilClass,但值仍然保存到数据库
这是我的看法:
<%= form_for @setting, url: {action: "new"} do |f| %>
<p>Site Name: <%= f.text_field :site_name %></p>
<p>City Name: <%= f.text_field :location %></p>
<%= f.submit %>
<% end %>
这里是在控制器中的“新”的动作,同样的代码在“更新”以及:
def new
@settings = Setting.first
@settings.site_name = params[:setting][:site_name]
@settings.location = params[:setting][:location]
@settings.save
redirect_to admin_url
end
和更新控制器:
def update
@settings = Setting.first
@settings.site_name = params[:setting][:site_name]
@settings.location = params[:setting][:location]
@settings.save
redirect_to admin_url
end
我的数据库有一个设置表,其中“site_name”和“location”为两列。
以下是完整的错误:
NoMethodError in AdminController#new
undefined method `[]' for nil:NilClass
Extracted source (around line #29):
27 @settings = Setting.first
28
29 @settings.site_name = params[:setting][:site_name]
30 @settings.location = params[:setting][:location]
31 @settings.save
什么我在两者的表格中输入被添加到数据库,无论错误,因此它看起来像代码工作的权利,但它仍然抛出一个错误。我错过了什么?
你好,你能不能也发布你的更新方法? – Jeremie
它在哪一行发生错误? –
是的,错误的完整痕迹将有所帮助 – Jeremie