浏览 816 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-10-02
两个model
area.rb class Area < ActiveRecord::Base has_many :categories validates_presence_of :name, :sort_order validates_uniqueness_of :name end category.rb class Category < ActiveRecord::Base belongs_to :area has_many :topics validates_presence_of :name, :sort_order validates_uniqueness_of :name validates_associated :area end controller:
def category_new
@category = Category.new
@areas = Area.find(:all)
end
def category_create
@category = Category.new(params[:category])
if @category.save
flash[:notice] = 'Category was successfully created.'
redirect_to :action => 'category_list'
else
render :action => 'category_new'
end
end
view: category_new.rhtml
<div class="admin-form">
<fieldset>
<legend>新建类别</legend>
<% form_tag :action => 'category_create' do %>
<%= render :partial => 'category_form' %>
<%= submit_tag "新建" %>
<% end %>
</fieldset>
</div>
<br/>
<%= link_to '返回', :action => 'category_list' %>
_category_form.rhtml
<%= error_messages_for "category" %>
<!--[form:category]-->
<p><label for="category_name">分类名称</label><br/>
<%= text_field 'category', 'name' %></p>
<p><label for="category_area_id">版区名称</label><br/>
<%= collection_select("category", "area_id" , @areas, "id", "name") %></p>
</p>
<p><label for="category_sort_order">排序</label><br/>
<%= text_field 'category', 'sort_order' %></p>
现在的问题是: 如果满足 Category 类的条件, 添加、删除、修改都正常 但是,只要 Category 校验不通过(比如让 分类名称 为空)提交后就提示: Showing app/views/admin/_category_form.rhtml where line #8 raised: You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.inject 难道是rails的校验有顺序?google了半天没结果,郁闷 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-10-03
那是因为你在category_create里少了赋值@areas = Area.find(:all) 而在category.save失败后又render了'category_new',这个view里又render partial用了_category_form.rhtml ,在第8行里用到了@areas这个变量
其实根据你帖的错误提示“Showing app/views/admin/_category_form.rhtml where line #8 raised:”一眼就看到了这个错误,你咋就不仔细瞧瞧错误提示呢? 你是不懂英文呢还是真的不懂英文呢? |
|
| 返回顶楼 | |
|
最后更新时间:2007-10-03
rainchen 写道 那是因为你在category_create里少了赋值@areas = Area.find(:all) 而在category.save失败后又render了'category_new',这个view里又render partial用了_category_form.rhtml ,在第8行里用到了@areas这个变量
其实根据你帖的错误提示“Showing app/views/admin/_category_form.rhtml where line #8 raised:”一眼就看到了这个错误,你咋就不仔细瞧瞧错误提示呢? 你是不懂英文呢还是真的不懂英文呢? 谢谢,现在ok了,提示是看懂了,初用rails,语法还觉得比较奇怪,还不适应,再次表示感谢 |
|
| 返回顶楼 | |
|
最后更新时间:2007-10-03
blwidow 写道 rainchen 写道 那是因为你在category_create里少了赋值@areas = Area.find(:all) 而在category.save失败后又render了'category_new',这个view里又render partial用了_category_form.rhtml ,在第8行里用到了@areas这个变量
其实根据你帖的错误提示“Showing app/views/admin/_category_form.rhtml where line #8 raised:”一眼就看到了这个错误,你咋就不仔细瞧瞧错误提示呢? 你是不懂英文呢还是真的不懂英文呢? 谢谢,现在ok了,提示是看懂了,初用rails,语法还觉得比较奇怪,还不适应,再次表示感谢 |
|
| 返回顶楼 | |





