我正在尝试让两个按钮在相同形式的轨道中工作。我有一个包含添加用户和注册按钮的登录表单。我的控制器中有2个方法已经处理了这2个不同的请求。
但是,我阅读了有关使用其他参数进行解析以确定调用哪个按钮的建议。对于这个解决方案,您不需要使用另一个控制器方法进行间接级别来进行解析吗?我读到控制器调用另一个控制器并不是一个好的MVC实践。在这种情况下,调用MVC控制器类中的另一个方法是不好的做法吗?
我的表格:
<%= form_tag("users/delegate", :method=>"post") do %>
<%= label_tag(:user, "Username:") %>
<%= text_field_tag(:user) %>
<br/><br/>
<%= label_tag(:password, "Password:") %>
<%= password_field_tag(:password) %>
<br/><br/>
<%= submit_tag "Login", :name=>'login' %>
<%= submit_tag "Add User" %>
<% end %>
另外,如何将post请求中的参数传递给另一个方法?一世 基本上没有,但争论没有通过。我是否需要将params传递给另一种方法?它是一个全局变量吗?
def delegate
if params[:login]
login_post()
else
add_post()
end
end
def login_post
user = params[:user]
password = params[:password]
errCode = UserModel.login(user,password)
if (errCode>0)
count = errCode
errCode = 1
end
final_obj = {:errCode=> errCode, :count=>count}
respond_to do |format|
format.json { render :json=>final_obj, :status=>200}
end
end
答案 0 :(得分:0)
你应该这样做:
def delegate
if params[:login]
login_post(params[:user], params[:password])
else
add_post()
end
end
def login_post(user, password)
#do your things
end