我正在尝试使用按钮更新Rails应用程序中的记录。我有一个用户,我想更新其school_id值。我有一个学校视图页面,用户可以在其中单击按钮以将该学校的ID添加到用户school_id字段。我正在努力实现。这是我到目前为止的内容:
用户控制器:
def add_school
@user = User.find(params[:user_id])
@user.update_attributes(:school_id)
respond_to do |format|
flash[:notice] = "School has been added!"
format.html { redirect_to :back }
format.js
end
学校显示页面上的按钮:
<%= button_to "Add School", add_school_user_path, :method => "put" %>
我试图通过仅向User控制器中的update动作添加代码来实现此目的的另一种方式,但我也无法使它起作用:
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:school_id])
flash[:notice] = "School has been added!"
redirect_to @user
end
if @user.update_attributes(params[:user])
flash[:notice] = "Successfully updated account and profile!"
end
end
将学校ID传递到用户school_id列的最佳方法是什么?
谢谢!!
编辑1:路线
resources :users do
member do
get :following, :followers
put :add_school
end
更新的控制器:
def add_school
@user = current_user
@school = School.find(params[:id])
@user.update_attributes(school_id: params[:school_id])
respond_to do |format|
flash[:notice] = "School has been added!"
redirect_to @user.school
end
end
更新了按钮链接:
<%= button_to "Add School", add_school_user_path(@user, school_id: @school.id), :method => :put %>
路由错误:
No route matches {:action=>"add_school", :controller=>"users", :school_id=>1, :id=>nil}
您需要一个表格,而不仅仅是一个按钮
<%= form_tag add_school_user_path(@user), method: put do -%>
<%= hidden_field_tag :school_id, @school.id -%>
<%= submit_tag 'Add school' -%>
<%- end -%>
您没有提供上下文代码,也许@user和@school不是真正的变量名,但是您可以从中获得想法
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句