pabloz
June 19, 2007, 10:22am
1
Hello
I have 2 models.
link.rb
has_many :categories, :as => :categorized
validates_presence_of :name, :url, :created_at, :category
category.rb
belongs_to :categorized, :polymorphic => true
validates_presence_of :name
Everything seems to work. I select my category from a select tag. The
problem is i don’t know how to validate if category is for example
empty
(nothing in a select tag), i would like to display the validation
error
along with other validation errors for link.
My create link controller.
def create
@link = Link.new(params[:link])
if @link.save
flash[:notice] = 'Link was successfully created.'
category = Category.new(params[:category][:id])
category.categorized = @link
category.save
else
render :action => "new"
end
end
pabloz
June 19, 2007, 11:20am
2
Perhaps try enclosing the ‘save’ into a begin/rescue block?
I have something similar:
class Keyword < ActiveRecord::Base
has_many :rules, :order => :position
<–>
keywords_controller:
def addrule
@keyword = Keyword.find(params[:id])
rule_description = params[:rule][:description].strip
# exclamation mark after create method call forces validation
begin @keyword.rules.create !(:description => rule_description)
flash[:notice] = “New rule was successfully added.”
rescue Exception
flash[:notice] = "Error saving rule: " + rule_description +
“ ”
flash[:notice] << $!.message
end
redirect_to :action => ‘show’, :id => @keyword
end
pabloz
June 19, 2007, 6:00pm
3
First of all I am sorry for triple post (accident).
Thank you for reply. I will look into your solution.
On 19 Cze, 11:20, Isabelle P. [email protected]