Hi Guys,
I am developing a blog system with Rails and I have a question about the following matter:
My client wants me to create an approve and disapprove action for the comments.
So, I did create two actions in the rails comment controller called by a put method, since the only thing they do is change the approved collumn at the database. I am still not familiar with REST, so I decided to ask what you would do in a situation like this.
Another way I was thinking is create an action update and there I would handle if I get a params[:approve] or a params[:disapprove]. I know it is a quite simple question, but I did research, but I think I didn’t find the right keywords to look for it.
Thanks for any inputs in advance.
Marco Antonio
I would try to use 2 radio buttons, or a select box with values:
* Approved
* Not approved
* ... other states
Then, you embed the processing of these values in the UPDATE action.
For a select box, this might help you to start:
<li>
<%= select(:blogpost, "status_id", Status.all.collect {|p| [ p.name,
p.id ] }) %>
</li>
hph,
patrick
Hi Marco,
Hi Guys,
I am developing a blog system with Rails and I have a question about the
following matter:
My client wants me to create an approve and disapprove action for the
comments.
So, I did create two actions in the rails comment controller called by a put
method, since the only thing they do is change the approved collumn at the
database. I am still not familiar with REST, so I decided to ask what you
would do in a situation like this.
Another way I was thinking is create an action update and there I would
handle if I get a params[:approve] or a params[:disapprove].
I think, in the end, you're making a choice is between:
/blog/23/comments/4/approve
and
/blog/23/comments/4?approve
From a REST perspective, the latter is probably slightly more
preferred. Fielding's dissertation does not provide a prescription at
this level of detail, focusing instead on the need for unique resource
identifiers. In the sense that the resource itself is more clearly
identified in your proposal, I would venture an opinion that it is
more RESTful than your client's proposal. But I wouldn't get wrapped
around the axle with a client on that point.
From a code maintenance perspective,however, the latter is much more
preferable in that it requires only one method (update) instead of two
(approve/disapprove). Additionally, the Rails routing engine
supports / generates the CRUD methods by default, whereas you will
need to do extra work to support your client's request. That reduced
complexity translates to $$$ which, in my experience, typically
engages clients instantly.
HTH,
Bill
Thank you guys.
Bill, you helped me a lot. That was exactly what I needed to hear.
Well, I came here once again just to share this article that I found that answers my questions too. In case someone have the same question.
http://dathompson.blogspot.com/2008/07/restful-rails-passing-url-parameters.html
Regards,
Marco Antonio