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