मैं रेल के लिए नया हूं इसलिए यहां कुछ मदद का उपयोग कर सकते हैं। मैंने टिप्पणियों के साथ ब्लॉग बनाने और यहां तक कि कुछ AJAX घंटी और सीटी बनाने के लिए कई ट्यूटोरियल का पालन किया है और मैं कुछ ऐसी चीज पर फंस गया हूं जो मुझे आशा है कि आसान है। ब्लॉग और टिप्पणियों दोनों के लिए डिफ़ॉल्ट प्रदर्शन सबसे पुराना सबसे पहले सूचीबद्ध करना है। मैं सबसे हालिया प्रविष्टियों और शीर्ष पर सबसे हाल की टिप्पणियां दिखाने के लिए इसे कैसे उलटा कर सकता हूं। वास्तव में यह नहीं पता कि यह नियंत्रक या मॉडल का एक कार्य है या नहीं। मैंने कुछ अनुकूलन किया है, इसलिए यह नियंत्रक के लिए कोड है। आरबी फाइलें अगर यह मदद करता है।ब्लॉग प्रविष्टियों और टिप्पणियों के प्रदर्शन के विपरीत क्रम, रेल पर रूबी
टिप्पणियाँ नियंत्रक
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create!(params[:comment])
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
पोस्ट नियंत्रक
class PostsController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
# GET /posts
# GET /posts.xml
def index
@posts = Post.all(:include => :comments)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
format.json { render :json => @posts }
format.atom
end
end
# GET /posts/1
# GET /posts/1.xml
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
end
# GET /posts/new
# GET /posts/new.xml
def new
@post = Post.new
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
# GET /posts/1/edit
def edit
@post = Post.find(params[:id])
end
# POST /posts
# POST /posts.xml
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
flash[:notice] = 'Post was successfully created.'
format.html { redirect_to(@post) }
format.xml { render :xml => @post, :status => :created, :location => @post }
else
format.html { render :action => "new" }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
end
end
end
# PUT /posts/1
# PUT /posts/1.xml
def update
@post = Post.find(params[:id])
respond_to do |format|
if @post.update_attributes(params[:post])
flash[:notice] = 'Post was successfully updated.'
format.html { redirect_to(@post) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /posts/1
# DELETE /posts/1.xml
def destroy
@post = Post.find(params[:id])
@post.destroy
respond_to do |format|
format.html { redirect_to(posts_url) }
format.xml { head :ok }
end
end
private
def authenticate
authenticate_or_request_with_http_basic do |name, password|
name == "admin" && password == "secret"
end
end
end
यह वास्तव में एक उपयोगी उत्तर था और यह काम किया। एक और questin (क्षमा करें)। मेरे पास show.html.erb पर काम करने के लिए AJAX सेटअप है। मैं इसे नीचे की बजाय शीर्ष पर नई टिप्पणी जोड़ने के लिए नहीं मिल सकता। मैंने कुछ चीजों की कोशिश की है लेकिन यहां कोई त्वरित शब्द है? – bgadoci
आप AJAX कैसे कर रहे हैं? आरजेएस या ??? यदि आप अभी भी ब्लॉग ट्यूटोरियल का पालन कर रहे हैं, तो आप केवल बदलना चाहते हैं: create.js.rjs में पहली पंक्ति पर नीचे: शीर्ष ... यदि आपने अपने जेएस को किसी अन्य चीज़ पर स्विच किया है तो यह एक नया प्रश्न पोस्ट करने के लायक हो सकता है। –
यह एक तीसरा विकल्प है जो 'डिफ़ॉल्ट' स्कोप विधि का उपयोग 'टिप्पणी' मॉडल के भीतर ही करना है। 'default_scope: order => 'create_at desc'' –