2016-04-22 2 views
0

У меня есть небольшая проблема с моим кодом, и я никогда не вижу такой ошибки, я делаю вторую страницу для редактирования своего сообщения (например, как страница профиля с приложением). Поэтому, когда я хочу редактировать сообщение, это всегда первая запись моего db, которая принимает информацию об изменениях.Ошибка при загрузке моего db

Итак, если вы видите, какую ужасную ошибку я делаю, это будет потрясающе!

Маршруты:

Rails.application.routes.draw do 
 
    get 'pushs/show' 
 

 
    get 'pushs/edit' 
 

 
    get 'profiles/show' 
 

 
    mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 
 
    
 
    devise_for :users, :controllers => { registrations: 'registrations' } 
 

 
    resources :posts do 
 
    resources :comments 
 
end 
 

 
    get ':pseudo', to: 'profiles#show', as: :profile 
 
    get ':pseudo/edit', to: 'profiles#edit', as: :edit_profile 
 
    patch ':pseudo/edit', to: 'profiles#update', as: :update_profile 
 

 
    get 'push/:post_id', to: 'pushs#show', as: :push 
 
    get 'push/:post_id/edit', to: 'pushs#edit', as: :edit_push 
 
    patch 'push/:post_id/edit', to: 'pushs#update', as: :update_push 
 

 
    root 'posts#index'

Нажмите регулятор:

class PushsController < ApplicationController 
 
    
 
    before_action :authenticate_user! 
 
    before_action :set_push 
 

 
    def show 
 
    @post = Post.find_by(params[:post_id]) 
 
    end 
 

 
    def edit 
 
    end 
 

 

 
def update 
 
    
 
    if @post.update(push_params) 
 
     flash[:success] = 'Your profile has been updated.' 
 
     redirect_to root_path 
 
    else 
 
     @post.errors.full_messages 
 
     flash[:error] = @post.errors.full_messages 
 
     render :edit 
 
    end 
 
    end 
 

 
    private 
 

 
    def push_params 
 
    params.require(:post).permit(:prix, :portion) 
 
    end 
 

 

 
    def owned_push 
 
    @post = Post.find_by(params[:id]) 
 
    unless current_user == @post.user_id 
 
     flash[:alert] = "That prost doesn't belong to you!" 
 
     redirect_to root_path 
 
    end 
 
    end 
 

 

 
    def set_push 
 
    @post = Post.find_by(params[:id]) 
 
    end 
 

 

 

 
end

Редактировать просмотров (толчок)

<h1>Mettre le Plat en ligne :</h1> 
 

 

 
<div class="posts-wrapper"> 
 
    <div class="post"> 
 
    <div class="post-body"> 
 
     <div class="image-wrap"> 
 
     <%= form_for @post, url: {action: "update"}, html: { multipart: true } do |f| %> 
 
      <div class="row"> 
 
      <div class="col-md-12"> 
 
       <div class="form-group text-center"> 
 
       <h4>prix</h4> 
 
       <%= f.text_area :prix %> 
 
       </div> 
 
      </div> 
 
      </div> 
 
      <div class="row"> 
 
      <div class="col-md-12"> 
 
       <div class="form-group text-center"> 
 
       <h4>portion</h4> 
 
       <%= f.text_area :portion %> 
 
       </div> 
 
      </div> 
 
      </div> 
 
      <div class="form-group text-center"> 
 
      <%= f.submit "Update Post", class: 'btn btn-success' %> 
 
      </div> 
 
     <% end %> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

Если вы хотите увидеть больше, вы можете проверить свой код на GitHub: https://github.com/Mesnet/Beta0.1

+1

Пожалуйста, разместите сообщение об ошибке. – toddmetheny

+0

нет сообщения об ошибке, просто, когда я пытаюсь изменить эту часть сообщения, это изменение добавляется к моему первому сообщению db. Хотя я бы хотел, чтобы это изменение применимо к сообщению, отредактированному –

+0

, можете ли вы опубликовать хеш params? – toddmetheny

ответ

0

вы глядя вверх @post с парами post_id, но на странице редактирования param, который вы обычно собираетесь использовать, если у вас есть обычное приложение для рельсов, это просто id.

Попробуйте добавить:

@post = Post.find(params[:id]) 

на первой строке вашего действия обновления. Дайте мне знать, если это не решит. И, пожалуйста, обновите свой вопрос, чтобы включить хеш params, который проходит через трассировку стека при отправке вашей формы.

+0

Ну, я действительно не понимаю, что вы подразумеваете под параметрами, поэтому я нажимаю весь свой проект на github: https: //github.com/Mesnet/Beta0.1 –

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