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