2017-03-06 4 views
0

編集ビューのフォームを作成しようとしていますが、フォームの最初の引数にnilを含めることができません。Rails 5 - フォームの最初の引数にはnilを含めることができないか、空にすることはできません。

私はで動作新しいビューのための類似の形式があります:私は編集して、新しい両方の共有フォームを使用したいと思いますが、私は取得するために管理することはできません

<%= form_for(@user, url: signup_path) do |f| %> 

をそれを動作させるために@user。ご協力いただきありがとうございます!

ビュー/ユーザー/ edit.html.erb>

<%= form_for(@user) do |f| %> 
    <%= render 'shared/error_messages' %> 

    <%= f.label :name %> 
    <%= f.text_field :name, class: 'form-control' %> 

    <%= f.label :email %> 
    <%= f.email_field :email, class: 'form-control' %> 

    <%= f.label :password %> 
    <%= f.password_field :password, class: 'form-control' %> 

     <%= f.label :password_confirmation, "Confirmation" %> 
     <%= f.password_field :password_confirmation, class: 'form-control' %> 

    <%= f.submit "Save changes", class: "btn btn-primary" %> 
    <% end %> 

users_controller.rb>

def update 
    @user = User.find(params[:id]) 
    if @user.update_attributes(user_params) 
     flash[:success] = "Profile updated" 
     redirect_to @user 
    else 
     flash.now[:danger] = 'There was an error updating your account, try again' 
     render 'edit' 
    end 
    end 

routes.rbを>

Rails.application.routes.draw do 
    root 'static_pages#home' 
    get '/about', to: 'static_pages#about' 
    get '/contact', to: 'static_pages#contact' 
    get '/signup', to: 'users#new' 
    post '/signup', to: 'users#create' 
    get '/login', to: 'sessions#new' 
    post '/login', to: 'sessions#create' 
    delete '/logout', to: 'sessions#destroy' 
    resources :users 
end 

答えて

3

形態はeditアクション上にあります、updateではありません。

したがって、あなたは@userインスタンス変数を取らされるからeditアクション、追加する必要があります。

def edit 
    @user = User.find(params[:id]) 
end 
関連する問題