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.
http://www.merriam-webster.com/dictionary/chancer 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: