Hi guys,
In my routes file I have the following nested resource:
resources :users do
collection do
get ''posts''
end
end
However, when I visit this URL: http://localhost:3000/users/posts, I get this
error: "The action ''posts'' could not be found for
UsersController"
In my UsersController I have the following:
class UsersController < ApplicationController
# GET /users
# GET /users.json
def index
@users = User.order(:name)
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @users }
end
end
# GET /users/1
# GET /users/1.json
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @user }
end
end
# GET /users/new
# GET /users/new.json
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @user }
end
end
# GET /users/1/edit
def edit
@user = User.find(params[:id])
end
# POST /users
# POST /users.json
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to(users_url,
:notice => "User #{@user.name} was successfully
created.") }
format.json { render :json => @user,
:status => :created, :location => @user }
else
format.html { render :action => "new" }
format.json { render :json => @user.errors,
:status => :unprocessable_entity }
end
end
end
# PUT /users/1
# PUT /users/1.json
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(users_url,
:notice => "User #{@user.name} was successfully
updated.") }
format.json { head :ok }
else
format.html { render :action => "edit" }
format.json { render :json => @user.errors,
:status => :unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.json
def destroy
@user = User.find(params[:id])
@user.destroy
respond_to do |format|
format.html { redirect_to(users_url) }
format.json { head :ok }
end
end
end
What would I change for the route: http://localhost:3000/users/posts to work?
Kind Regards,
Chad Eubanks
The Code Boutique
--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
> "The action ''posts'' could not be found for UsersController"http://localhost:3000/users/posts routes your request to UsersController#posts, but method ''posts'' is not there. Add ''posts'' method to UsersController, and your problem is solved. ---- http://blog.eugen.co -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 17 May 2011 09:27, Eugen Ciur <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:>> "The action ''posts'' could not be found for UsersController" > > http://localhost:3000/users/posts > > Add ''posts'' method to UsersController, and your problem is solved.Or... you have just created a whole load of different problems... :-/ Instead, check the result of "rake routes" to see what routes Rails is expecting - this might put you on the track towards what is not right with your routing. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 17 May 2011 06:26, Chad Eubanks <chadcreation-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> In my routes file I have the following nested resource: > > resources :users do > collection do > get ''posts'' > end > endPS Just to clarify, rather than "collection" you possibly want to use the syntax: resources :users do resources :posts end http://guides.rubyonrails.org/routing.html -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org 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.
Michael, I initially I was using resources as oppose to collection. I ran take routes and users/posts is a valid route. Ultimately I am trying to keep a relationship between the two models but remove the user id from the URL. Kind Regards, Chad Eubanks The Code Boutique Sent from my iPhone On May 17, 2011, at 1:40 AM, Michael Pavling <pavling-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 17 May 2011 06:26, Chad Eubanks <chadcreation-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> In my routes file I have the following nested resource: >> >> resources :users do >> collection do >> get ''posts'' >> end >> end > > > PS Just to clarify, rather than "collection" you possibly want to use > the syntax: > resources :users do > resources :posts > end > > http://guides.rubyonrails.org/routing.html > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. >-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 17 May 2011 15:30, Chad Eubanks (gMail) <chadcreation-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Ultimately I am trying to keep a relationship between the two models but remove the user id from the URL.You can keep a relationship between models without *any* nesting of routes. Whether a Post belongs to a User, or has many Comments has no *requirement* for certain routes. The routes are just there to help you get about those relationships. What exact functionality do you want to implement? -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
The end goal is this: I have a client app that is proxing json from the rails server. Our current way of using /users/id/posts.json as the url proxied does not work as needed. I would like to set a relation between the user and post model but NOT have a nested url. The desired scenario is this: A user logs in and creates a session. After authentication a redirect to /posts occurs. Post belongs to user and user has_many posts. If you''d like and have a git account, I can add you as a contributor to this demo. This way you can see and change the logic I have currently. Here is a link to the git project: https://github.com/TheCodeBoutique/Blogger Kind Regards, Chad Eubanks The Code Boutique On May 17, 2011, at 8:03 AM, Michael Pavling wrote:> On 17 May 2011 15:30, Chad Eubanks (gMail) <chadcreation-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> Ultimately I am trying to keep a relationship between the two models but remove the user id from the URL. > > You can keep a relationship between models without *any* nesting of > routes. Whether a Post belongs to a User, or has many Comments has no > *requirement* for certain routes. The routes are just there to help > you get about those relationships. > What exact functionality do you want to implement? > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > 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. >-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org 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.