Clean Up the code

1. Provide the models required 2. Each article can be related to many articles (or none).Provide code for making @article.related_articles work 3. Clean up the code according to rails conventions

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

What will be the solution for the above issue?

Really? you're just pasting your homework questions directly to the list now without even paraphrasing them?!

Michael Pavling wrote in post #1043878:

Hahaha! At least you're honest :slight_smile:

Michael Pavling wrote in post #1043893:

I'm not doing your homework for you.

If you get a certain way through it and get stuck, I'm happy to nudge, but just answering the whole question doesn't do you any favours.

Pass the test on your merits by learning the material; don't have me pass your tests for you.

@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?’

  1. ` @info = Info.find(:first, :conditions => "article_id =

#{@article.id}")`

Use associations to define this so that you call @info = @[article.info](http://article.info)

  1. ` @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).

I went back and looked at some other posts by Srimanta. It looks like most of his questions are either homework, or interview questions.

I don't l know why you waste your time -or the group's time - on this guy.

Trying not to say this loser. Oops, just did.

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).

> 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

Scott. Are you calling me a loser for posting the comments about Srimanta?

Not if you read it thus: "I don't l know why you waste your time on this loser."

But it's a bit of a strong judgement for my tastes... personally, I think he's a bit of a chancer, trying to get better grades by getting people to do his work for him. Wouldn't go so far as to bandy around insults.

OK, I'll read it that way :wink:

Incidentally, even though I was shocked by Srimanta's request, I did learn something from Prince's response.

No sir. Not you!

Apologies if I gave you that impression.

I agree that insults in general are bad. This rare time it seemed deserved.

A few questions are fine. Being a chump for someone who won't do their homework is beyond the pale. Programmers don't always have good local resources for help. As a student, he should have a professor, TA, fellow students to lean on.

I just think in this case we're being played. Certainly 'nuff said on this "chancer" (whatever that is :-)) for now.

Heh. I had to go look it up too. Chancer Definition & Meaning - Merriam-Webster says:

===8<---cut here---

British : a scheming opportunist

Examples of CHANCER

    <a two-faced chancer, he doesn't hesitate to dump people when they are no longer of any use>     <betrayed by a chancer who, she mistakenly thought, was her friend>

First Known Use of CHANCER 1959

Related to CHANCER

Synonyms: chameleon, acrobat [British], opportunist, temporizer, timeserver, trimmer, weathercock

Related Words: egoist, egotist, self-seeker; conniver, machinator, plotter, schemer

Near Antonyms: altruist

===8<---cut here---

Truly we are two (and then some) nations divided by a common language....

-Dave

Dud i will give you 2 hints :

- - RTFM - - try .blank? method # if params[:show_comments] && params[:show_comments] != '' can be wrote as unless params[:show_comments].blank?

Alecslupu

Hi,     I am a new guy in ruby on rails. I am using this forum to get help to learn this. So please don't think that I am a loser or chancer. In this world everybody tries to get chance. If you don't want to help then just ignore it.

Thanks

What would _you_ call someone who tries to cheat their way through their qualifications?

Michael Pavling wrote in post #1044267: