如何在Ruby控制器中打印多个变量?

时间:2016-04-19 09:54:00

标签: ruby-on-rails ruby

我是红宝石的全新人物。我的Ruby版本2.2。我有一个编辑个人资料表格。我想在两个不同的地方显示表格和表格数据。请检查我的代码

users_controller.rb

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

我在这里定义了raise $user.inspectraise params.inspect我希望得到这两个数据。但是在我的页面中只有第一个。请检查并告诉我如何获得我的两个数组值。

谢谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

将它们分配给@user@params等实例变量,并在您的视图中访问它们。说过您已经分配了@user变量,params可以在您的视图中自动访问。

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

<%= params %>

另外,请考虑使控制器RESTful。您可以向控制器网址发送PUT请求(例如PUT profile/1),它会自动调用您的ProfileController#edit方法。