2016-04-19 9 views
-1

私は全く新しいルビーです。私のRubyバージョン2.2。私はプロフィールの編集フォームを持っています。テーブルとフォームの両方のデータを2つの異なる場所に表示したい。私はraise $user.inspectraise params.inspect私は両方のデータを取得したい定義する必要がありRubyコントローラで複数の変数を印刷するには?

def edit_profile 
    @user = User.get_profile(session[:user_id]) 
    raise $user.inspect 
    respond_to do |format| 
      if params[:user][:avatar] 
      params[:user][:photo] = orginal_file_upload params[:user][:avatar] 
      end 
      raise params.inspect 
      if @user.update(user_params) 
      format.html { redirect_to :back, notice: 'Your profile was successfully updated.' } 
      format.json { render :show, status: :ok, location: @user } 
      else 
      format.html { render :my_profile } 
      format.json { render json: @user.errors, status: :unprocessable_entity } 
      end 
    end 
end 

ここ

users_controller.rb私のコードを確認してください。しかし、私のページには、最初のものだけが来ます。確認し、私の両方の配列の値を取得する方法を教えてください。

ありがとうございます。

+0

は、あなたは彼らがページまたはログに表示されるようにしたいですか? – Matt

+1

どこに印刷しますか? 'raise'は印刷のためではなく、"エラーを起こす "ためのものです。 – Uzbekjon

+0

2つの配列値をマイページに表示したい – Chinmay235

答えて

1

raiseは、エラーをスローするメカニズムです。 raise $user.to_sはコントロールの動作を戻します。 putsメソッドを使用すると、コントローラの値を表示できます。

正しいコードは次のようになります。

def edit_profile 
@user = User.get_profile(session[:user_id]) 

respond_to do |format| 
     if params[:user][:avatar] 
     params[:user][:photo] = orginal_file_upload params[:user][:avatar] 
     end 

     @user.update(user_params) 
     format.html { render :inline => "User<p> ID:<%= @user.id %><br>NAME: <%= @user.name %><br>EMAIL: <%= @user.email %></p>Params <p><%= params.inspect%></p>".html_safe } 


end 
end 
+0

'puts @ user.to_s'はレコードを印刷できません。 – Chinmay235

+0

代わりに '@ user.inspect'を使用してください – zaingz

+0

動作しません。同じ出力。 – Chinmay235

0

@user@paramsのようなインスタンス変数にそれらを割り当てて、ビューにアクセスします。すでに@userという変数とparamsが自動的に割り当てられていると言われています。

# In your view 
<%= @user.name %> 

<%= params %> 

また、コントローラをRESTfulにすることを検討してください。 PUTリクエストをコントローラのURL(PUT profile/1など)に送信すると、自動的にProfileController#editメソッドが呼び出されます。

+0

私はコントローラで印刷したい。表示しない – Chinmay235

+0

しかし、あなたは言った: "*私のページに2つの配列の値を表示したい*"。だからあなたのページやコンソールでそれをしたいですか?あなたのウェブページにそれをしたい場合、あなたはあなたのビューでそれを印刷する必要があります。 – Uzbekjon

+0

はいページは表示しないことを意味します。私のコントローラの 'echo'がブラウザに表示されます。 – Chinmay235