控制器不在Rails中更新数据库

时间:2016-04-07 19:42:05

标签: ruby-on-rails database view controller

我对铁轨很新,所以请耐心等待。我在选择单选按钮后尝试更新数据库中的单元格" question_one"但我目前所拥有的并不是有效地更新我的数据库。我对自己做错了很困惑。

我的控制器处理输入

def index
  @users = User.all
end 

def show
  @user = User.find(params[:id])
end

def new
  @user = User.new
end

def back
  @users = User.order("name").page(params[:page]).per(1)
end

# WHERE I AM UPDATING
def update
  user = User.where(:id => params[:id]).first
if user && user.update_attributes(params[:user])
  flash[:success] = "Team Member successfully Updated!"
else
  flash[:danger] = "Team Member unsuccessfully Updated!"
end
end

def create
@user = User.new(user_params) 
if @user.save
  if @user.role == 0 
     @user.update_attribute :admin, true
  end
  #log_in @user
  flash[:success] = "Team Member successfully Created!"
  redirect_to users_url
else
  render 'new'
end
end

def edit
  @user = User.find(params[:id])
end 

def update
  @user = User.find(params[:id])
  if @user.update_attributes(user_params)
    flash[:success] = "Profile updated"
    redirect_to @user
  else
    render 'edit'
  end
end

def destroy
  User.find(params[:id]).destroy
  flash[:success] = "User deleted"
  redirect_to users_url
end

private

def user_params
  params.require(:user).permit(:name, :email, :password,
                               :password_confirmation, :role, :username,    :admin, :question_one)
 end

 # Confirms a logged-in user.
  def logged_in_user
    unless logged_in?
    store_location
    flash[:danger] = "Please log in."
    redirect_to login_url
  end
 end

 # Confirms the correct user.
def correct_user
  @user = User.find(params[:id])
  redirect_to(root_url) unless @user == current_user
end

# Confirms an admin user.
def admin_user
  redirect_to(current_user) unless current_user.admin?
end
end

我的back.html.erb

<% @users.each do |user| %>
<% result = 0%>
<h4> <%= user.name  %> </h4>
<%= form_for(user) do |f| %>
   <%= f.label :Question_one %>
   <%= f.radio_button :question_one, 1 %>
   <%= f.radio_button :question_one, 2 %>
   <%= f.radio_button :question_one, 3 %>
   <%= f.submit %>
<% end %>
<% end %>
<%= paginate @users %>

我一直盯着这几个小时,所以我真的很感激你的帮助。提前谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个

形式:

<%= form_for(user) do |f| %>
 <%= f.label :Question_one %>
 <%= f.radio_button :question_one, 1 %>
 <%= f.radio_button :question_one, 2 %>
 <%= f.radio_button :question_one, 3 %>
 <%= f.submit %>
<% end %>

更新行动:

#WHERE I AM UPDATING
def update
  user = User.find_by_id(params[:id])
  if user && user.update_attributes(user_params)
   flash[:success] = "Team Member successfully Updated!"
  else
   flash[:danger] = "Team Member unsuccessfully Updated!"
  end
end