On Oct 4, 2011, at 6:54 AM, "Hadi S." <poph...@gmail.com> wrote:

> Hi,
> 
> I need to create some pages in a rake task. For what attributes i have
> to watch out?
> I already implemented the rake task but can't save pages inside it,
> because the page is invalid. I think because the slug and breadcrumb
> attributes are not set. Where does the slug and breadcrumb default
> attributes get set in the radiant source code?

Start by writing a test for some object that will do this. Make a PageCreator 
or something and write the methods in there. Then, in your rake task, call the 
methods on that well tested object.

If you want to just handle it in your task (you shouldn't, because it's harder 
to verify that your code is correct) then at least check to see if the pages 
you create are "valid?" and then handle any errors. 

But there are no default slug or breadcrumb settings. In the admin UI there is 
JS that will watch what you type for the title and automatically set those 
fields for you. Open the new page form in the web UI and click the more link to 
see those fields. Then begin typing a title and you'll see slug and breadcrumb 
automatically filled in. You don't have this JS in your rake task. 

Another option is to just reopen the Page class in your code and add defaults 
like this:

Page.class_eval do
  before_save :set_my_defaults
  def set_my_defaults
    # your code
  end
end

But if you don't write tests, you might make incorrect assumptions about your 
program. For example, you might assume that you can save without setting a slug 
or breadcrumb ;-)

Does this help?

-Jim

Reply via email to