我是红宝石的全新人物。我的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.inspect
和raise params.inspect
我希望得到这两个数据。但是在我的页面中只有第一个。请检查并告诉我如何获得我的两个数组值。
谢谢。
答案 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
方法。