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

        对于刚接触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> <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 %>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值