Hi,
I’m running the following code in my show() method:
@articles = Article.find(:all, :conditions => ["issue_id = ?",
@issue.id], :order => ‘column
,position’)
if (params[:article_id])
@article_id = params[:article_id].to_i
c = 0
total = @articles.count
while (c < total)
if @article_id == @articles[c].id
if c == 0
@article_prev = @articles.last.id
else
@article_prev = @articles[(c-1)].id
end
if ((c+1) == total)
@article_next = @articles.first.id
else
@article_next = @articles[(c+1)].id
end
end
end
else
@article_id = 0
@article_main = @articles.first.id
@article_prev = @articles.last.id
@article_next = @articles[1].id
end
Now to be honest this code is already a bit odd for me but I have no
idea how else to approach this in Ruby on Rails. So I’ve attempted to do
it PHP-style. But I’m being told that I can’t do @articles.count
Why? I have a user model and a user has a one to many relationship with
articles so I know that: @user.articles.count works. Hence I’m guessing
there’s something big I’m missing here.
So, how am I going to do this? How do I easily cycle through my list of
articles and get the previous and next ones?
Any help greatly appreciated. I’ve been going back and forth over my
books and forums but I can’t seem to formulate the question to be able
to ask it.