1.
dong
Nov 17, 2008 at 06:18
谢谢!!
2.
zhujg
Nov 25, 2008 at 03:43
谢谢!!
If you have a lot of logic associated with the data inside a session, you’ll need some central location to put this logic. See how to create a session based model in this episode.
如果在session里有很多相关逻辑的数据,您需要一些主要的位置来放置逻辑。这个视频教你如何基于model上建立session.
# models/user_session.rb class UserSession def initialize(session) @session = session @session[:comment_ids] ||= [] end def add_comment(comment) @session[:comment_ids] << comment.id end def can_edit_comment?(comment) @session[:comment_ids].include?(comment.id) && comment.created_at > 15.minutes.ago end end # controllers/application.rb def user_session @user_session ||= UserSession.new(session) end helper_method :user_session # comments_controller.rb before_filter :authorize, :only => [:edit, :update] def create @comment = Comment.new(params[:comment]) if @comment.save user_session.add_comment(@comment) flash[:notice] = "Successfully created comment." redirect_to article_url(@comment.article_id) else render :action => 'new' end end private def authorize unless user_session.can_edit_comment? Comment.find(params[:id]) flash[:error] = "You are no longer able to edit this comment." redirect_to root_url end end
<% if user_session.can_edit_comment? comment %> <p><%= link_to "Edit", edit_comment_path(comment) %></p> <% end %>
谢谢!!
谢谢!!