2014-09-02 3 views
0

Здравствуйте, у меня есть проблема с моей маршрутизацией. В настоящее время у меня есть пользователь с вложенным почтовым ресурсом. В настоящее время я пытаюсь создать новую должность для каждого пользователя.Rails вложенные маршруты для пользователя-разработчика

routes.rb

Rails.application.routes.draw do 

    root 'home#index' 

    resources :dashboard 

    devise_for :users, :path => '', :path_names => { 
    :sign_in => 'login', 
    :sign_out => 'logout', 
    :sign_up => 'register' 
    } 

    resource :users do 
    resources :posts 
    end 
end 

posts_controller.rb

class PostsController < ApplicationController 
    before_action :set_user 

    def index 
    @posts = @user.posts 
    end 

    def new 
    @post = @user.posts.new 
    end 

    def create 
    @post = @user.posts.new(post_params) 
    if @post.save 
     redirect_to :controller => 'dashboard', :action => 'index' 
    else 
     render :new 
    end 
    end 

private 

    def post_params 

    end 

    def set_user 
    @user = current_user 
    end 
end 

ссылка

<%= button_to "New Post", new_users_post_path(current_user), :class => "btn btn-default navbar-btn", :method => :get %> 

маршрут

new_users_post GET /users/posts/new(.:format)  posts#new 

Это приводит к: NoMethodError в/пользователей/сообщений/новый неопределенный метод `user_posts_path» для # < #: 0x007fe01d1608f0>. Есть идеи? Благодаря!

ответ

0

Это не решает проблему, но new_users_post_path должны быть без каких-либо Params:

<%= button_to "New Post", new_users_post_path, class: "btn btn-default navbar-btn", method: :get %> 

resource :user также вместо users

+0

Спасибо! Но я все равно получаю ту же ошибку. (неопределенный метод 'user_posts_path 'для # <# <Класс: 0x007fe01d1f77c8>: 0x007fe01d0339f0>) – vertroa

Смежные вопросы