2015-11-18 3 views
0

Прежде чем я начну, я знаю, что мне нужна функция редактирования и обновления в контроллерах сообщений и потоков, но проблема связана с тем, что информация о файле forum_post.user теряется обновление и дублирующие сообщения нити после обновления, поэтому я полностью удалил код, чтобы получить помощь в решении этой проблемы, разместив сами контроллеры.Rails 4: Редактировать/Обновить потоки, Редактировать/Обновить сообщения

Но вам понадобятся маршруты, прежде чем я опубликую его/форум /, это всего лишь фальшивый маршрут, чтобы вставить forum_threads/posts и не существует вне его области.

Rake Маршруты выходного

Prefix Verb URI Pattern               Controller#Action 
      new_user_session GET /users/sign_in(.:format)            devise/sessions#new 
       user_session POST /users/sign_in(.:format)            devise/sessions#create 
     destroy_user_session DELETE /users/sign_out(.:format)           devise/sessions#destroy 
       user_password POST /users/password(.:format)           devise/passwords#create 
      new_user_password GET /users/password/new(.:format)          devise/passwords#new 
      edit_user_password GET /users/password/edit(.:format)          devise/passwords#edit 
          PATCH /users/password(.:format)           devise/passwords#update 
          PUT /users/password(.:format)           devise/passwords#update 
    cancel_user_registration GET /users/cancel(.:format)            devise/registrations#cancel 
      user_registration POST /users(.:format)              devise/registrations#create 
     new_user_registration GET /users/sign_up(.:format)            devise/registrations#new 
     edit_user_registration GET /users/edit(.:format)            devise/registrations#edit 
          PATCH /users(.:format)              devise/registrations#update 
          PUT /users(.:format)              devise/registrations#update 
          DELETE /users(.:format)              devise/registrations#destroy 
    forum_thread_forum_posts GET /forum/forum_threads/:forum_thread_id/forum_posts(.:format)   forum_threads/forum_posts#index 
          POST /forum/forum_threads/:forum_thread_id/forum_posts(.:format)   forum_threads/forum_posts#create 
new_forum_thread_forum_post GET /forum/forum_threads/:forum_thread_id/forum_posts/new(.:format)  forum_threads/forum_posts#new 
edit_forum_thread_forum_post GET /forum/forum_threads/:forum_thread_id/forum_posts/:id/edit(.:format) forum_threads/forum_posts#edit 
    forum_thread_forum_post GET /forum/forum_threads/:forum_thread_id/forum_posts/:id(.:format)  forum_threads/forum_posts#show 
          PATCH /forum/forum_threads/:forum_thread_id/forum_posts/:id(.:format)  forum_threads/forum_posts#update 
          PUT /forum/forum_threads/:forum_thread_id/forum_posts/:id(.:format)  forum_threads/forum_posts#update 
          DELETE /forum/forum_threads/:forum_thread_id/forum_posts/:id(.:format)  forum_threads/forum_posts#destroy 
       forum_threads GET /forum/forum_threads(.:format)          forum_threads#index 
          POST /forum/forum_threads(.:format)          forum_threads#create 
      new_forum_thread GET /forum/forum_threads/new(.:format)         forum_threads#new 
      edit_forum_thread GET /forum/forum_threads/:id/edit(.:format)        forum_threads#edit 
       forum_thread GET /forum/forum_threads/:id(.:format)         forum_threads#show 
          PATCH /forum/forum_threads/:id(.:format)         forum_threads#update 
          PUT /forum/forum_threads/:id(.:format)         forum_threads#update 
          DELETE /forum/forum_threads/:id(.:format)         forum_threads#destroy 
       import_users POST /users/import(.:format)            users#import 
         users GET /users(.:format)              users#index 
          POST /users(.:format)              users#create 
        new_user GET /users/new(.:format)             users#new 
        edit_user GET /users/:id/edit(.:format)           users#edit 
         user GET /users/:id(.:format)             users#show 
          PATCH /users/:id(.:format)             users#update 
          PUT /users/:id(.:format)             users#update 
          DELETE /users/:id(.:format)             users#destroy 
         root GET /                 forum_threads#index 

Маршруты:

Rails.application.routes.draw do 
devise_for :users 
    scope "/forum" do 
     resources :forum_threads do 
       resources :forum_posts, module: :forum_threads 
     end 
    end 

    resources :users do 
    collection do 
     post :import 
    end 
    end 
root 'forum_threads#index' 
end 

Форум Темы Контроллер

class ForumThreadsController < ApplicationController 
    before_action :authenticate_user!, except: [:index, :show] 
    before_action :set_forum_thread, except: [:index, :new, :create] 

    def index 
    @q = ForumThread.search(params[:q]) 
    @forum_threads = @q.result(distinct: true) 
    end 

    def show 
    @forum_post = ForumPost.new 
    end 

    def new 
    @forum_thread = ForumThread.new 
    @forum_thread.forum_posts.new 
    end 

    def create 
    @forum_thread = current_user.forum_threads.new forum_thread_params 
    @forum_thread.forum_posts.first.user_id = current_user.id 

    if @forum_thread.save 
     redirect_to @forum_thread 
    else 
     render action: :new 
    end 
    end 

    def destroy 
    @forum_thread.destroy 
    redirect_to root_path 
    end 

    private 

    def set_forum_thread 
     @forum_thread = ForumThread.find(params[:id]) 
    end 

    def forum_thread_params 
     params.require(:forum_thread).permit(:subject, forum_posts_attributes: [:body]) 
    end 
end 

форума Контроллер

class ForumThreads::ForumPostsController < ApplicationController 
    before_action :authenticate_user! 
    before_action :set_forum_thread 

    def create 
    @forum_post = @forum_thread.forum_posts.new forum_post_params 
    @forum_post.user = current_user 

    if @forum_post.save 
     redirect_to forum_thread_path(@forum_thread, anchor: "forum_post_#{@forum_post.id}"), notice: "Successfully posted!" 
    else 
     redirect_to @forum_thread, alert: "Unable to save your post" 
    end 
    end 

    private 

    def set_forum_thread 
     @forum_thread = ForumThread.find(params[:forum_thread_id]) 
    end 

    def forum_post_params 
     params.require(:forum_post).permit(:body) 
    end 
end 

Я знаю, что путь редактирования форума для link_to будет edit_forum_thread_path или просто поправьте меня, если я ошибаюсь, но это путь редактирования/удаления сообщений, с которым мне нужна помощь, поскольку этот контроллер вложен в forum_threads и с помощью модуля forum_threads, я изначально предположил, что это будет edit_forum_threads_forum_posts_path, но это было не так, как в прошлый раз, когда я попытался, прежде чем удалять эти функции.

ответ

0

Это будет edit_forum_thread_forum_post_path на основе вашего rake routes выхода.

+0

Прохладный, это правильный путь, но некоторые ошибки, которые мне нужны помощь при разработке. http://pastebin.com/12RUyDuW – user3468440

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