要學習Rails,我正在編寫一個不使用數據庫的簡單留言簿應用程序。 無論如何,這是我的看法是什麼樣子:字符串將在Rails中工作但不是符號
的意見/ guest_book_pages/home.html.erb
<h1>Guest Book</h1>
<%= @userinput %>
<%= form_for(:guestbook) do |f| %>
<%= f.label :input %>
<%= f.text_field :input %>
<%= f.submit "Sign" %>
<% end %>
而且控制器看起來是這樣的:
控制器/ guest_book_pages_controller.rb
class StaticPagesController < ApplicationController
def home
@userinput = params[:guestbook]["input"]
end
end
每當我將「輸入」更改爲符號:輸入時,應用程序會中斷並給出警告,說明:undefined method [[]'for無:NilClass
這是什麼原因?爲什麼我不能使用符號?
更新:現在它甚至不會使用字符串。到底是怎麼回事?
更新#2:它適用於符號和字符串。唯一的問題是它不會第一次加載。如果我可以加載頁面,那麼兩者都可以工作。我怎樣才能加載頁面?
我試過了,但問題仍然存在。我認爲這樣做的行爲:params [:留言簿] [「輸入」]正在破壞。我想知道是否有任何方法檢查參數是否沒有設置而沒有檢查參數本身? – learningrails123 2013-05-03 14:46:05
你有沒有試過'if params.has_key?(:guestbook)' – fullybaked 2013-05-03 14:48:19
實際上,我需要檢查:input是否有任何值,當我這樣做時,它會再次破壞。 – learningrails123 2013-05-03 15:03:57