2016-04-22 45 views
0

我的代碼有點問題,我從來沒有看到過這種錯誤,我做了第二頁來編輯我的文章(例如像設計檔案頁面)。所以,當我想編輯一篇文章時,它總是我的數據庫的第一篇文章,它接受了更改信息。上傳我的分區時出錯

所以,如果你能看到我犯的錯誤,那將是驚人的!

途徑:

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

沒有錯誤信息,只是當我嘗試修改這篇文章的這一部分時,這個改變被添加到我的第一個數據庫文章。雖然我希望將此更改應用於編輯後的 –

+0

,那麼您是否可以發佈params散列? – toddmetheny

回答

0

你與帕拉姆post_id仰視@post,但編輯頁面上的如果你有一個傳統的rails應用程序,那麼你通常會使用param就是id。

嘗試增加:

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

您的更新行動的第一線。讓我知道如果沒有解決。並且請更新您的問題,以便在發佈表單時包含堆棧跟蹤中發送的參數散列值。

+0

嗯,我不明白你是什麼意思的params,所以我把我所有的項目在github上:https://github.com/Mesnet/Beta0.1 –