About the options argument

tokland Sep 22, 2010 1 thank

The options are not documented, but of course you can use the same options than submit_tag.

Note that all non-documented options are simply passed to the input tag. Amongst other things, this allows you to change the default name attribute (commit):

form.submit 'Cancel', :name => 'cancel'...

No concurrency

leente Sep 13, 2010 2 thanks

If you want to handle concurrency, this doesn't work:

a = Article.first
b = Article.first
a.increment!(:view_count)
b.increment!(:view_count)
a.reload.view_count # -> 1
b.reload.view_count # -> 1

Instead, use SQL:

def increment_with_sql!(attribute, by = 1)
raise Ar...

bad idea.

ssoroka Sep 9, 2010 2 thanks

Just a note, ypetya's idea of using a before filter to set the primary key wont scale. transactions will eventually step on each other and probably end up with duplicate key ids, unless you have some other method to ensure uniqueness.

You'd be better off using mysql to generate the default integer...