Я пытаюсь получить две кнопки для работы в рельсах для той же формы. У меня есть форма входа в систему как с кнопкой добавления пользователя, так и с кнопкой регистрации. У меня есть два метода в моем контроллере, которые уже обрабатывают эти два разных запроса.Две кнопки в рельсах
Однако я прочитал предложения об использовании дополнительного параметра для синтаксического анализа, чтобы определить, какая кнопка была вызвана. Для этого решения вам не нужен уровень косвенности с другим методом контроллера для синтаксического анализа? Я прочитал, что с вызовом контроллера другого контроллера не очень хорошая практика 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 %>
Кроме того, как я прохожу в аргументах из запроса пост в другой метод? I по существу делал, но аргументы не передаются. Нужно ли передавать параметры в другой метод? Это глобальная переменная?
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 знает, что хэш: пароль соответствует параметрам [: password], если передаваемый аргумент является значением? – Andy
'hash' пароль будет позаботиться о вашей реализации. Это будет по-прежнему 'post'. Здесь вы просто вызываете метод в своем контроллере. Вот и все. – codeit
ohh Я вижу, как работает ваше обновление. к сожалению, у меня также есть спецификация, которая говорит, что я не могу изменить сигнатуру метода для login_post – Andy