Простое решение для Java:
public boolean isPalindrome(String testString) {
StringBuffer sb = new StringBuffer(testString);
String reverseString = sb.reverse().toString();
if(testString.equalsIgnoreCase(reverseString)) {
return true;
else {
return false;
}
}
Терминология в вашем вопросе немного запуталась. Если вы находитесь в контроллере, и вы хотите выполнить код в другом методе действия в другом контроллере и отобразить его шаблон, вам следует redirect_to это действие. Скажем, другой контроллер называется ContractsController
redirect_to :controller => "contracts", :action => "show_home_page"
. Если вы просто хотите использовать шаблон представления из другого метода в качестве ответа на ваше действие, вам просто нужно поставить префикс имени контроллера в параметре рендеринга. Это не вызовет действие, он просто будет использовать его шаблон.
Например, если шаблон находится в папке для контроллера контрактов.
render :action => "/contracts/show_home_page", :layout=> false
Я думаю, что в этом случае вы на самом деле говорите о частичном, который будет выглядит как
render :partial => "/contracts/show_home_page"
Однако, Я вижу, что вы здесь понимаете, что вы действительно хотите вызвать несколько методов действия для визуализации одной страницы. Это не так. Вам нужно будет настроить объекты, на которые будут ссылаться шаблоны в одном действии. Это одна из причин, по которой большинство разработчиков Rails помещают в модели много кода, поэтому настройка не повторяется для всех контроллеров.
Но есть другой способ ... где проявляется магия JavaScript .
Создайте на своей странице такую функцию:
<script type="text/javascript" language="javascript">
function load_categories() {
<%= remote_function(:url => {:controller => "categories", :action => "list"},
:update => "categories")%>
};
</script>
Если вы вызовете ее при загрузке даже своей страницы, она заменит div на id " категории "с ответом от указанного действия.
Это одна из причин, по которой большинство разработчиков Rails помещают в модели много кода, поэтому настройка не повторяется для всех контроллеров.Но есть другой способ ... где проявляется магия JavaScript .
Создайте на своей странице такую функцию:
<script type="text/javascript" language="javascript">
function load_categories() {
<%= remote_function(:url => {:controller => "categories", :action => "list"},
:update => "categories")%>
};
</script>
Если вы вызовете ее при загрузке даже своей страницы, она заменит div на id " категории "с ответом от указанного действия.
Это одна из причин, по которой большинство разработчиков Rails помещают в модели много кода, поэтому настройка не повторяется для всех контроллеров.Но есть другой способ ... где проявляется магия JavaScript .
Создайте на своей странице такую функцию:
<script type="text/javascript" language="javascript">
function load_categories() {
<%= remote_function(:url => {:controller => "categories", :action => "list"},
:update => "categories")%>
};
</script>
Если вы вызовете ее при загрузке даже своей страницы, она заменит div на id " категории "с ответом от указанного действия.
I'm not sure I understand your problem statement fully (why this must be done from the view), but I'd say you just call redirect_to
from controller A to controller B.
Если вы действительно хотите отрендерить совершенно другое действие (т.е. имитировать запрос, проходящий через весь стек Ruby on Rails), вы можете использовать Webrat (проверьте Скринкаст Webrat здесь)
В традиционных веб-приложениях MVC в этом редко возникает необходимость. Но по моему опыту разработки веб-приложений в стиле SOFEA и микроархитектуры , это становится все более распространенным явлением.