同じフォームのレールで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