【发布时间】:2011-12-30 16:45:06
【问题描述】:
Ruby 3.1 Rails 1.9.2 绝对新手
当我尝试在应用程序中编辑现有广告时,问题就开始了。
我收到“NilClass:Class 的未定义方法 `model_name'”错误。以下信息可能会提供有关问题所在的线索。我花了几个小时试图弄清楚它无济于事。
Routes.rb
match 'ads/:id/edit' => 'ads#edit'
match 'ads/:id/update' => 'ads#update'
match 'ads/' => 'ads#index'
match 'ads/new' => 'ads#new'
match 'ads/create' => 'ads#create
控制器中的条目
def edit
@ad=Ad.find(params[:id])
end
def update
@ad=Ad.find(params[:id])
@ad.update_attributes(params[:id])
redirect_to "/ads/#{@ad.id}"
end
查看:
<%= form_for(@ad,:url=>{:action=>'update'}) do |f| %>
<p><b>Name</b><br /><%= f.text_field :name %></p>
<p><b>Description</b><br /><%= f.text_area :description, rows: 10 %></p>
<p><b>Price</b><br /><%= f.text_field :price %></p>
<p><b>Seller</b><br /><%= f.text_field :seller_id %></p>
<p><b>E-mail</b><br /><%= f.text_field :email %></p>
<p><b>Img url</b><br /><%= f.text_field :img_url %></p>
<p><%= f.submit "Update" %></p>
<% end %>
任何帮助将不胜感激。 谢谢。
【问题讨论】:
-
不相关,但我建议仍然使用 Ruby 1.8 样式的哈希(即
:rows => 10)而不是 1.9 样式的(rows: 10),除非您知道此应用程序将永远运行在使用 Ruby 1.9.2 的环境。否则,您将不得不返回并更改应用程序中每个哈希的样式。
标签: ruby-on-rails