【发布时间】:2014-02-21 07:04:19
【问题描述】:
用户登录后,我正在尝试收集其他信息以在数据库中更新
这是我的控制器
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def additional_info
@user = User.find params[:id]
end
def update
if @user.update(user_addinfo)
redirect_to user_path(@user), notice: 'User was successfully updated.'
else
render action: 'additional_info'
end
end
def create
@user = User.new(user_params)
if @user.save
#session[:user_id] = @user.id
#UserMailer.welcome_email(@user).deliver
sign_in @user
redirect_to additional_info_path(@user)
flash[:success] = "Welcome to InYourShoes!"
else
render'new'
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
def user_addinfo
params.require(:user).permit(:year)
end
end
如果@user.update(user_addinfo) 错误发生在def update 函数,rails 说它未定义。 def user_addinfo 是一个操作方法,def additional_info 是实际页面
页面视图:
<div class="row">
<div class="col-xs-12 col-sm-6 col-sm-offset-3">
<%= form_for(@user, :html => {:class => 'form-horizontal'}) do |f| %>
<fieldset>
<p>Do you have experience in Business? If yes, select one of the following:
<div class="input-group">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Select one <span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">Entrepreneurship</a></li>
<li><a href="#">Investments</a></li>
<li><a href="#">Management</a></li>
<li class="divider"></li>
<li><a href="#">All of the Above</a></li>
</ul>
</div><!-- /btn-group -->
<%= f.text_field :year , :class => "form-control", :placeholder => "Years of experience" %>
</div>
</p>
<div class = "center form-actions">
<%= f.submit "Submit", class: "btn btn-lg btn-primary" %>
</div>
</fieldset>
<% end %>
</div>
</div>
我是否将@user 保存在错误的位置?我对@variablename 实例变量的概念还是很陌生...非常感谢您的帮助和解释
【问题讨论】:
标签: ruby-on-rails ruby