Ruby on Rails Friday, February 3, 2012

Prince Joseph wrote in post #1043906:
> @Michael is right. We can help you in doing this, in case you are stuck
> up
> somewhere, but you must really atleast make an effort.
>
> As of point 3, you can consider the following suggestions:
>
> 1. `current_user.roles.map {|r| r.to_s}.include?('admin')`
>
> Consider moving this code to User model by defining an instance
> function
> like 'admin?' so that you can call 'current_user.admin?'
> 2. `@info = Info.find(:first, :conditions => "article_id =
> #{@article.id}")`
>
> Use associations to define this so that you call `@info =
> @article.info`
> 3. `@comments = Comment.find(:first, :conditions => "article_id =
> #{@article.id}")`
>
> Again use associations for this. Also, since this is returning a
> single
> object, the variable name should be @comment (singular).
>
>
>
> On Fri, Feb 3, 2012 at 5:08 PM, Michael Pavling <pavling@gmail.com>
> wrote:
>
>> > Thanks for your compliment. But please...
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Talk" group.
>> To post to this group, send email to rubyonrails-talk@googlegroups.com.
>> To unsubscribe from this group, send email to
>> rubyonrails-talk+unsubscribe@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>
>>
>
>
> --
> Thanks,
> Prince

Thanks for your hint, I have tried the problem and please check this
whether it is correct or not

Models requires:
class Article < ActiveRecord::Base
has_many :related_articles, :dependent => :destroy
has_many :info, :dependent => :destroy
has_many :comments, :dependent => :destroy
end
class RelatedArticle < ActiveRecord::Base
belongs_to :article
end
class Info < ActiveRecord::Base
belongs_to :article
end
class Comment < ActiveRecord::Base
belongs_to :article
end

Each article can be related to many articles (or none). -- YES


Cleaning up the code:

class ArticleController < ApplicationController
def show
@article = Article.find(params[:id])
if current_user.roles.map {|r| r.to_s}.include?('admin')
@info = @article.info.first
else
@info = nil
end
if params[:show_comments] && params[:show_comments] != ''
@comments = @article.comments.first
end
if !(params[:hide_related] && params[:hide_related] != '')
@related_articles = @article.related_articles
end
end
end

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment