Here’s where I am right now:
View:
<% for task in @tasks %>
<%= link_to “Complete”, complete_task_path(task) %>
<%=h task.body %>
<%= link_to ‘Edit’, edit_task_path(task) %>
<%= link_to ‘Destroy’, task, :confirm => ‘Are you sure?’, :method
=> :delete %>
<% end %>
routes.rb:
map.resources :tasks, :collection => { :complete => :post }
Controller:
def complete
@task = Task.find(params[:id])
@task.completed = true
end
Right now I am getting undefined method for complete_task_path. Why is
that? And how do I turn this into a checkbox? I want the checkbox to
call the complete method.
You want to change :collection to :member.
On Dec 18, 2007 11:44 AM, jcontonio [email protected] wrote:
<%= link_to 'Destroy', task, :confirm => 'Are you sure?', :method
@task = Task.find(params[:id])
@task.completed = true
end
Right now I am getting undefined method for complete_task_path. Why is
that? And how do I turn this into a checkbox? I want the checkbox to
call the complete method.
–
Ryan B.
I need to do more reading it looks like. Thank you Ryan
Heh, that stumped me a few times when I was learning restful routing
too.
The way I remember it now is a :member is like a member of a group,
whereas
a collection is a collection of things.
On Dec 18, 2007 11:51 AM, jcontonio [email protected] wrote:
<%= link_to 'Destroy', task, :confirm => 'Are you sure?',
def complete
–
Ryan B.
That’s easy to remember. Thanks again
Maybe you can answer this Ryan.
Do I still do :render layout => false when pushing out an rjs format
when using a RESTful design? My complete.js.rjs isn’t being called.
def complete
@task = Task.find(params[:id])
@task.completed = true
render :layout => false
end
By default, RJS files are not rendered with a layout.
Are you sure it’s going in to the rjs file and the rjs file has valid
code?
Are you using Firefox? Do you have Firebug? Firebug will tell you about
any
javascript errors.
On Dec 18, 2007 11:58 AM, jcontonio [email protected] wrote:
end
:method
@task = Task.find(params[:id])
Ryan B.http://www.frozenplague.net
–
Ryan B.http://www.frozenplague.net
–
Ryan B.
Ah ok, here is my problem:
in my log I see:
Parameters: {“action”=>“3”, “id”=>“complete”, “controller”=>“tasks”}
That’s pretty weird no? Why would
<%= link_to “Complete”, complete_task_path(task) %>
let it think the action = the id?
I have this:
map.resources :tasks, :member => { :complete => :put }
above
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
That is weird. Have you not defined map.resources :tasks, :collection =>
{
:complete => :post } above the default
map.connect’:controller/:action/:id’?
I think that’s what would be doing something like that, because it would
be
sending a url like /tasks/3/complete. Move the map.resources to above
this
default map.connect 'contro… and it should work.
On Dec 18, 2007 12:08 PM, jcontonio [email protected] wrote:
On Dec 17, 8:31 pm, “Ryan B.” [email protected] wrote:
@task = Task.find(params[:id])
a collection is a collection of things.
Here’s where I am right now:
:method
@task = Task.find(params[:id])
–
Ryan B.http://www.frozenplague.net
–
Ryan B.http://www.frozenplague.net
–
Ryan B.http://www.frozenplague.net
–
Ryan B.
Weird. That’s the only thing I can think of that could cause it.
On Dec 18, 2007 12:28 PM, jcontonio [email protected] wrote:
That is weird. Have you not defined map.resources :tasks, :collection =>
On Dec 18, 2007 12:08 PM, jcontonio [email protected] wrote:
That’s pretty weird no? Why would
Are you using Firefox? Do you have Firebug? Firebug will tell you
when using a RESTful design? My complete.js.rjs isn’t being
routing
end
Ryan B.http://www.frozenplague.net
–
Ryan B.