Arsip

Archive for the ‘Ruby On Rails’ Category

Membuat Newstiker dengan Javascript Pada Rails

November 23, 2009 Andry Sucipto Komentar dimatikan

Nestiker adalah suatu animasi sederhana yang biasanya digunakan oleh banya programer untuk memberikan animasi berupa text yang berganti satu demi satu secara vertikal, biasanya digunakan di News Later Barita, adapun cara pembuatannya sangat mudah :

1. Mempersiapkan code Javascriptnya :

<script type=”text/javascript”>
$(function() {
$(“.newsticker-jcarousellite”).jCarouselLite({
vertical: true,
hoverPause:true,
visible: 1,
auto:500,
speed:2500
});
});
</script>

Download Code Javascript berikutnya jquery-latest.pack dan jcarousellite_1.0.1c4 , masukkan semua javascript yang ada di antara head

2. Pada View kita masukkan code berikut :

<div id=”newsticker-demo”>
<div class=”newsticker-jcarousellite”>
<ul>
<% @articles.each do |article| %>
<li>
<div class=”info”>
<span class=”title”><a href=”/newsbriefs/1″><%=h article.title %></a></span>&nbsp;&nbsp;
<span class=”cat”><a href=”/newsbriefs/1″><%=h article.updated_at %></a></span><br />
<%= snippet(article.content, 30) %>
</div>
</li>
<% end %>
</ul>
<div class=”clear”></div>
</div>
</div>

 

Selesai Selamat Mencoba !!!! Moga aja berhasil

Delete semua record dengan checkbox

November 3, 2009 Andry Sucipto Komentar dimatikan

Pada View :

<% @collection.each do |c| %>
<%= check_box_tag ‘myrow[id][]‘, c.id, false %>
<% end %>

Pada Controller :

def delete_all
@a = Model.find(params[:myrow][:id])
@a.each { |t| t.destroy }
end

Langkah Tarakhir pada Routes :

map.resources :controller, :collection => {:delete_all => :get}

Atau cara yang lain seperti di bawah ini :

Pada View :

<% form_for :items, @items, :url => { :action => 'destroy' } do %>
 <% for item in @items %>
 <%= check_box_tag 'item_ids[]', item.id, false %> <%= item.name %>
 <% end %>
<%= submit_tag 'Delete', :name =>'commit', :value => 'Delete',
:confirm => 'Are you sure?' %>
<% end %>

Pada Controller :

def index
 @items = Item.find(:all)

 respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :x ml => @items }
 end
end

def destroy
 i = 0
 arr_item = Array.new
 @items = Item.find(params[:item_ids])
 @items.each do |item|
  item.destroy
  arr_item[i] = item.name
  i += 1
 end
 @item_name = arr_item*', '  

 redirect_to(items_url)
 flash[:notice] = @item_name + ' was successfully deleted.'
end

Semua cara diatas dapat di gunakan, silahkan pilih salah satu yang termudah bagi anda

Categories: Ruby On Rails

Membuat Post dengan Banyak Category dengan Checkboxs pada Rails

November 3, 2009 Andry Sucipto Komentar dimatikan

posting ini kan amenjelaskan gimana seorang programer pemula untuk membuat sebuah post yang diikuti oleh banyak category dengan menggunakan checkbox, langkah langkahnya cukup sederhana

1. kita membuat scaffold Project dan scaffold User atau form form lain

2. pada Model keduanya kita tambahkan relasi :

pada User : has_and_belongs_to_many :projects

Pada Project : has_and_belongs_to_many :users

3, pada Form (NEW dengan EDIT) tambahkan check box nya :

<% for user in User.find(:all) %>
<div>
<%= check_box_tag “project[user_ids][]“, user.id, @project.users.include?(user) %>
<%= user.login %>
</div>
<% end %>

4. buat Tabel projects_users dengan field : project_id dan user_id

class CreateProjectsUsers < ActiveRecord::Migration
def self.up
create_table :projects_users, :id => false, :force => true do |t|
t.integer :project_id
t.integer :user_id
t.timestamps
end
end

def self.down
drop_table :projects_users
end
end

5, pada def update project controller kita tambahkan

params[:project][:user_ids] ||= []

langkah terakhir tinggal rake db:migrate dan jalankan servernya

Membuat No Urut dengan rails menggunakan each

Oktober 28, 2009 Andry Sucipto Komentar dimatikan

pada each kita tambah _with_index menjadi seperti ini :

<% @messages.each_with_index do |message, index| %>

<%=h index + 1 %>

<%  end %>

Categories: Ruby On Rails

Membuat Pesan Error waktu Register pada Rails

Oktober 28, 2009 Andry Sucipto Komentar dimatikan

Pada View

<li class=<%= validate_li(“user”, “login”) %>>
<p><label for=”login”>Login</label><br/>
<%= f.text_field :login %></p>
</li>
<li class=<%= validate_li(“user”, “email”) %>>
<p><label for=”email”>Email</label><br/>
<%= f.text_field :email %></p>
</li>
<li class=<%= validate_li(“user”, “email”) %>>
<p><label for=”password”>Password</label><br/>
<%= f.password_field :password %></p>
</li>
<li class=<%= validate_li(“user”, “password_confirmation”) %>>
<p><label for=”password_confirmation”>Confirm Password</label><br/>
<%= f.password_field :password_confirmation %></p>
</li>
<li class=<%= validate_li(“user”, “user_type_id”) %>>
<p><label for=”user_type”>User Type</label><br/>
<%= f.select :user_type_id, UserType.find(:all).collect {|p| [ p.name, p.id ] }, {:prompt => “- Please Select -”} %>
</li>

Pada Helper Aplication

def validate_li(object, field)
(error_message_on object.to_sym, field) == “” ? “” : “error”
end
def error_message(object)
ret = %{
<li id=”errorLi”>
<h3 id=”errorMsgLbl”>There was a problem with your signup.</h3>
<p id=”errorMsg”>
Errors have been <strong>highlighted</strong> below.
</p>
</li>
}
object && !object.errors.empty? ? ret : “”
end

Langkah Terakhir mengganti error message :

<%= error_messages_for :user %>

menjadi :

<%= error_message(@user)  %>

Membaca File text dengan Rails

Oktober 15, 2009 Andry Sucipto Komentar dimatikan

<% File.open(“#{RAILS_ROOT}/public”+”#{@avatar.public_filename}”).each() do |line| %>
<% stringArray = line %>
<%= stringArray %><br/>
<% end %>

Categories: Ruby On Rails

Membuat UserProfile pada Rails

September 23, 2009 Andry Sucipto Komentar dimatikan

pada Model :

User :

has_one    :user_profile

UserProfile:

belongs_to :user

Pada Migration :

class CreateUserProfiles < ActiveRecord::Migration
def self.up
create_table :user_profiles do |t|
t.integer :user_id
t.string  :name
t.string  :city
t.string  :state
t.timestamps
end
end

def self.down
drop_table :user_profiles
end
end

sedangkan pada controller :

class ProfileController < ApplicationController
before_filter :prepare_profile

def index
@user_profile = @user.user_profile
end

def update_profile
if @user.user_profile
@user_profile = UserProfile.find(@user.user_profile.id)
if @user_profile.update_attributes(params[:user_profile])
flash[:notice] = ‘Job was successfully updated.’
redirect_to :action =>’index’, :id => @user_profile.user_id
else
render :action => ‘index’
end
else
@user_profile = UserProfile.new(params[:user_profile])
@user_profile.user_id = current_user.id
if @user_profile.save
flash[:notice] = ‘Job was successfully created.’
redirect_to :action =>’index’
else
render :action => ‘index’
end
end
end

private

def prepare_profile
@user = User.find(current_user.id)
end

end

Categories: Ruby On Rails

Membuat Archive pada Rails

September 8, 2009 Andry Sucipto Komentar dimatikan

dengan menggunakan sebuah plugin kita mampu membangun sebuah archive yang biasanya kita temukan pada blog atau yang di sebut arsip sebiah artikel

nama plugin tersebut adalah acts_as_archivable, adpun taca pengunaan sangat mudah yaitu :

install pluginnya :

http://github.com/joshuaclayton/acts_as_archivable/tree/master

lalu setelah kita install pada model kita berikan :

acts_as_archivable :o rder => ‘DESC’

lalu setelah itu kita beralih ke controler dengan query dan def tersendiri kita berikan kode berikut:

def archive_blog
@blog = Blog.by_date :month => 8, :year => 2009
end

bisa di ganti dengan customes sebagai berikut :

Blog.by_date :year => 2007
Blog.by_date Date.today
Blog.by_date ‘5/1/2007′

Blog.oldest
Blog.newest

Blog.recent 2.weeks
Blog.recent 3.months
Blog.recent (3.months – 1.week)

Blog.between ‘5/10/2007′, Date.today

Membuat Tag pada Rails

September 8, 2009 Andry Sucipto Komentar dimatikan

untuk membuat tag pada rails kita cukup memerlukan satu plugin saja yang bernama acts_as_taggable_on_steroids adapun tatacara penggunaan sebagai berikut :

yang pertama install pluginnya dengan perintah :

script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids

seteh kita install buatlah migrations nya dengan perintah :

ruby script/generatr migrations add_tag_support

lalu pada migrationsnya kita tuliskan :

class AddTagSupport < ActiveRecord::Migration
def self.up
#Table for your Tags
create_table :tags do |t|
t.column :name, :string
end

create_table :taggings do |t|
t.column :tag_id, :integer
#id of tagged object
t.column :taggable_id, :integer
#type of object tagged
t.column :taggable_type, :string
end

# Index your tags/taggings
add_index :tags, :name
add_index :taggings, [:tag_id, :taggable_id, :taggable_type]
end

def self.down
drop_table :taggings
drop_table :tags
end
end

lalu kita migrate dengan perintah:

rake db:migrate

langkah selanjutnya pada model yang akan kita beri tag, misalnya model blog,  maka pada model blog kita tambahkan

acts_as_taggable

lalu pada view/blogs file new dengan edit kita tambah :

untuk New :

<p>
<label for=”tag_name”>Add your tags <small>(separated by comma)</small></label><br/>
<%= text_field ‘tag’,'name’ %><br/>
</p>

Untuk Edit :

<p>
<label for=”tag_name”>Add your tags <small>(separated by comma)</small></label><br/>
<%= text_field ‘blog’,'tag_list’ %><br/>
</p>

lalu pada blogs_controller

def edit
blog_id = Blog.find(:all, :conditions => ["id = ? ", params[:id]]).collect {|a| a.id }
if edit_privileges?(blog_id)
@blog = Blog.find(params[:id])
else
redirect_to :action => ‘index’
end
end

# POST /blogs
# POST /blogs.xml
def create
@blog = Blog.new(params[:blog])
@blog.save
taggable_id =  @blog.id
if session[:tag_name]
collect_tag(session[:tag_name])
else
collect_tag(params[:tag][:name])
end
@tags.each do |tag|
tag_found = Tag.find_by_name(tag)
tag_found = Tag.create(:name => tag) if !tag_found
save_tagging(tag_found.id, taggable_id)
end

redirect_to :action => ‘index’

end

private

def save_tagging(tag_id, taggable_id)
Tagging.create(:tag_id => tag_id,
:taggable_id   => taggable_id,
:taggable_type => “Blog”)
end

def edit_privileges?(blog_id)
blog_id.each do |id|
return true if id == original_id(params[:id]).to_i
end
return false
end

def collect_tag(tag_input)
@collect_tag = tag_input.gsub(” “,”")
@tags = @collect_tag.split(‘,’)
end

Membuat RSS pada Rails

September 2, 2009 Andry Sucipto Komentar dimatikan

yang perlu di siapkan dalam membuat rss adalah file.rxml yang diletakkan pada folder dimana data2 itu akan dibuat  rss, adapun gambaran isinya adalah sebagai berikut :

rss.rxml

xml.instruct!

xml.rss “version” => “2.0″, “xmlns:dc” => “http://purl.org/dc/elements/1.1/” do
xml.channel do

xml.title       “Share your Ascend-Points.com site”
xml.link        url_for(:only_path => false, :controller => ‘blogs’)
xml.description “Blogs in Ascend-Points.com”

@blog.each do |blog|
xml.item do
xml.title         blog.title
xml.description   blog.description
xml.link          url_for(:only_path => false, :controller => ‘blogs’, :action => ’show’, :id => “#{blog.id}”)
end
end

end
end

sedangkan pada controller kita buat def yang sama dengan file :

def rss
@jobs = Job.find(:all, :include => :ambitions,
:conditions => ‘jobs.id = ambitions.job_id’,
:o rder => ‘jobs.name’)
render :layout => false
headers["Content-Type"] = “application/xml; charset=utf-8″
end

sedangkan router.rb kita tambahkan  (option):

map.rss       ‘/rss’, :controller => ‘jobs’,     :action => ‘rss’

Selesai, selamat mencoba … ! semoga berhasil

Categories: Ruby On Rails