要学习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