0
我试图让2个按钮在同一个窗体的轨道中工作。我有一个登录表单,包含一个添加用户和注册按钮。我有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 %>
而且,我怎么在参数传递从发布请求到其他的方法?我基本上做了,但参数没有被传递。我需要传递参数给另一种方法吗?它是一个全局变量吗?
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
难道你路过的2个值:PARAMS [:用户],而params [:密码]。如果传入的参数是一个值,Ruby如何知道hash:password对应于params [:password]? – Andy 2013-02-15 18:54:21
'哈希'密码将由您的实施照顾。它仍然是'后'。这里你只是在你的控制器中调用一个方法。而已。 – codeit 2013-02-15 19:05:42
哦,我看你的更新是如何工作的。不幸的是,我也有一个规范说我不能更改login_post的方法签名 – Andy 2013-02-15 19:05:58