您的位置:首页 > 编程语言 > Ruby

ruby on rails10分钟创建一个博客系统!新手必看!

2013-05-31 14:55 405 查看
        对于刚接触ruby on rails的程序员来说有一个很好demo学习对自己开发和学习是很有帮助的,接下来我们一起学习下!blog的开发过程吧!

          我用的ruby是1.8.7 rails2.0  gem是1.31

         首先第一然我们讲一个项目吧!   

        rails blog         这样我们就生成了一个blog的项目

        cd  blog的根目录 然后我们生成脚手架吧

ruby script/generate  scafferd   articles title:string text:text keyword:string userid:refercer
ruby script/generate  scafferd   users  username:string password:string
ruby script/generate  model   comment  text:string  userid:refercer  articleid:refercer
ruby script/generate  controller   comment


              Adminscontroller.rb

class AdminsController < ApplicationController
# GET /admins
# GET /admins.xml
def index
@admins = Admin.find(:all)

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

# GET /admins/1
# GET /admins/1.xml
def show
@admin = Admin.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.xml  { render :xml => @admin }
end
end

# GET /admins/new
# GET /admins/new.xml
def new
@admin = Admin.new

respond_to do |format|
format.html # new.html.erb
format.xml  { render :xml => @admin }
end
end

# GET /admins/1/edit
def edit
@admin = Admin.find(params[:id])
end

# POST /admins
# POST /admins.xml
def create
@admin = Admin.new(params[:admin])

respond_to do |format|
if @admin.save
flash[:notice] = 'Admin was successfully created.'
format.html { redirect_to(@admin) }
format.xml  { render :xml => @admin, :status => :created, :location => @admin }
else
format.html { render :action => "new" }
format.xml  { render :xml => @admin.errors, :status => :unprocessable_entity }
end
end
end

# PUT /admins/1
# PUT /admins/1.xml
def update
@admin = Admin.find(params[:id])

respond_to do |format|
if @admin.update_attributes(params[:admin])
flash[:notice] = 'Admin was successfully updated.'
format.html { redirect_to(@admin) }
format.xml  { head :ok }
else
format.html { render :action => "edit" }
format.xml  { render :xml => @admin.errors, :status => :unprocessable_entity }
end
end
end

# DELETE /admins/1
# DELETE /admins/1.xml
def destroy
@admin = Admin.find(params[:id])
@admin.destroy

respond_to do |format|
format.html { redirect_to(admins_url) }
format.xml  { head :ok }
end
end
def login

if request.post?

@admin=Admin.find_by_username(params[:username])
#params[:username]=="huangbing"&¶ms[:password]=="123456"
#puts @admn.username
if @admin

if @admin.passworld==params[:password]
session[:admin_id]=@admin
if @admin.username=="admin"
redirect_to (:controller=>"admins",:action=>"index")
else
redirect_to (:controller=>"articles",:action=>"myblog")
# redirect_to :action=>"login"#,:text=>"你输入用户名的有误!"
end
else
flash[:notice] = 'password is  not found!.'
render :action=>"login"

end
# render(:action=>:login)
# @admin=Admin.new
#render(:controller=>:articles,:action=>:index)
#@redirect_to "login"
#redirect_to @admin
else
flash[:notice] = 'username is  not found!'
render :action=>"login"
end

else
render :action=>"login"
#render(:action=>:login)

end
end

def register
if request.get?
@admin=Admin.new
else
Admin.new(params[:admin])
redirect_to (:action=>"login")
end
end

end
                     articlerscontroller.rb                

class ArticlesController < ApplicationController
# GET /articles
# GET /articles.xml
def index
@articles = Article.find(:all)

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

# GET /articles/1
# GET /articles/1.xml
def show
@article = Article.find(params[:id])
#显示评论的用户名
#@admin=Admin.find(@article.comments.admin_id)

respond_to do |format|
format.html # show.html.erb
format.xml  { render :xml => @article }
end
end

# GET /articles/new
# GET /articles/new.xml
def new
@article = Article.new
@article.admin_id=session[:admin_id].id
respond_to do |format|
format.html # new.html.erb
format.xml  { render :xml => @article }
end
end

# GET /articles/1/edit
def edit
@article = Article.find(params[:id])
end

# POST /articles
# POST /articles.xml
def create
@article = Article.new(params[:article])

respond_to do |format|
if @article.save
flash[:notice] = 'Article was successfully created.'
format.html { redirect_to(@article) }
format.xml  { render :xml => @article, :status => :created, :location => @article }
else
format.html { render :action => "new" }
format.xml  { render :xml => @article.errors, :status => :unprocessable_entity }
end
end
end

# PUT /articles/1
# PUT /articles/1.xml
def update
@article = Article.find(params[:id])

respond_to do |format|
if @article.update_attributes(params[:article])
flash[:notice] = 'Article was successfully updated.'
format.html { redirect_to(@article) }
format.xml  { head :ok }
else
format.html { render :action => "edit" }
format.xml  { render :xml => @article.errors, :status => :unprocessable_entity }
end
end
end

# DELETE /articles/1
# DELETE /articles/1.xml
def destroy
@article = Article.find(params[:id])
@article.destroy

redirect_to (:controller=>"articles",:action=>"myblog")
# respond_to do |format|
#   format.html { redirect_to(articles_url) }
#   format.xml  { head :ok }
#end
end
def myblog
# @article=Article.find_by_admin_id(session[:admin_id].id)
@articles=Article.find_by_sql("select * from articles where admin_id=#{session[:admin_id].id}")
#render(:action=>:myblog)
end

end
        comment.rb

class CommentsController < ApplicationController
def create
#调用评论是用到的
@article=Article.find(params[:article_id])
#保存表单是用到的
#	@comment=@article.comments.build(params[:comment])
@comment=@article.comments.create("text"=> params[:text],"admin_id"=>session[:admin_id].id,"article_id"=> params[:article_id])
# @admin=Admin.find(session[:admin_id])
#@comment.save
redirect_to @article
end

def destroy
end
end
class Admin < ActiveRecord::Base
attr_accessible :username, :passworld
has_many :comments
has_many :articles

# def self.login(name, password)
#   
#  hashed_password = hash_password(password || "")
#  find(:first,:conditions => ["name = ? and hashed_password = ?",name, hashed_password])
#   
# end
#   
# def try_to_login
#   
#   Admin.login(self.name, self.password)
#   
# end
end
class Article < ActiveRecord::Base
attr_accessible :text, :title,:keyworld,:admin_id
has_many :comments
belongs_to :admin
end
class Comment < ActiveRecord::Base
attr_accessible :text, :article_id,:admin_id
belongs_to :article
belongs_to :admin
end
<h1>Listing admins</h1><table> <tr> <th>Username</th> <th>Passworld</th> </tr><% for admin in @admins %> <tr> <td><%=h admin.username %></td>
&l
9163
t;td><%=h admin.passworld %></td> <td><%= link_to 'Show', admin %></td> <td><%= link_to 'Edit', edit_admin_path(admin) %></td> <td><%= link_to 'Destroy', admin, :confirm => 'Are you sure?', :method => :delete %></td> </tr><% end %></table><br /><%= link_to
'New admin', new_admin_path %><h1>Editing admin</h1><% form_for(@admin) do |f| %> <%= f.error_messages %> <p> <%= f.label :username %><br /> <%= f.text_field :username %> </p> <p> <%= f.label :passworld %><br /> <%= f.text_field :passworld %> </p> <p> <%=
f.submit "Update" %> </p><% end %><%= link_to 'Show', @admin %> |<%= link_to 'Back', admins_path %><h1>login in</h1><%= form_tag %> <p> <%=label_tag :username %><br /> <%= text_field_tag :username %> </p> <p> <%=label_tag :password %><br /> <%=text_field_tag
:password %> </p> <p> <%=submit_tag "登入" %> </p><% if session[:admin_id] render(:action=>"login") %> <% end%><h1>New admin</h1><% form_for(@admin) do |f| %> <%= f.error_messages %> <p> <%= f.label :username %><br /> <%= f.text_field :username %> </p> <p> <%=
f.label :passworld %><br /> <%= f.text_field :passworld %> </p> <p> <%= f.submit "Create" %> </p><% end %><%= link_to 'Back', admins_path %><h1>user register!</h1><% form_for @admin, :url => { :action => "register" } do |f| %> <%= f.error_messages %> <p> <%=
f.label :username %><br /> <%= f.text_field :username %> </p> <p> <%= f.label :passworld %><br /> <%= f.text_field :passworld %> </p> <p> <%= f.submit "register" %> </p><% end %><%= link_to 'Back',:controller=>"articles",:action=>"index" %><p> <b>Username:</b>
<%=h @admin.username %></p><p> <b>Passworld:</b> <%=h @admin.passworld %></p><%= link_to 'Edit', edit_admin_path(@admin) %> |<%= link_to 'Back', admins_path %>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: