Forum: Ruby on Rails generate 10 UUID records and save it it database in rails

Posted by ruby rails (rubyonrails)
on 2012-10-17 15:34
I need to create certain number of  UUId records(based on the selection
of drop down) and save it in the database. Now I am generating only one
unique id. Can this be done in the model in this way. Or do I need to
write a helper file for that??

 def generate_unique_token=(value)    self.secret =
 Base64.encode64(UUIDTools::UUID.random_create)[0..8] end

In my controller...........

def create
     @secretcode= Secretcode.new(params[:secretcode])
     @user= User.new(params[:user])
     @secretcode.user_id=@user
@secretcode.generate_unique_token=params[:secretcode][:secret]
     if @secretcode.valid?
        @secretcode.save
        redirect_to secretcodes_path
     else
       render 'new'
     end   end

In my view page

> <%=form_for(@secretcode) do |f|%> <%= f.select(:secret,
> options_for_select([['1', 1], ['10', 10], ['20',
> 20],['50',50],['100',100]])) %> <%= render 'layouts/error' %>
> <%=f.label :secret%> <%= f.hidden_field :user %> <%=f.submit
> :generate%> <%end%>
Posted by Jordon Bedwell (Guest)
on 2012-10-17 15:40
(Received via mailing list)
On Wed, Oct 17, 2012 at 8:34 AM, ruby rails <lists@ruby-forum.com> 
wrote:
> def create
>      @secretcode= Secretcode.new(params[:secretcode])
>      @user= User.new(params[:user])
>      @secretcode.user_id=@user
> @secretcode.generate_unique_token=params[:secretcode][:secret]
>      if @secretcode.valid?
>         @secretcode.save
>         redirect_to secretcodes_path
>      else
>        render 'new'
>      end   end

before_save :guarantee_uuid!

private
def uuid
  if !uuid_field?
    write_attribute :uuid_field, # UUID CODE HERE
  end
end

That is how I would personally do it, put it all in a method and
trigger it with before_save, this also gives you the option to
generate the UUID and modify/add it in other places too.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.