Я очень новичок в рельсах, поэтому, пожалуйста, извините меня, если я задаю такой основной вопрос.Rails 3 - вызов метода контроллера с submit_tag
Я имел эту форму на моей странице html.erb:
<%= form_tag(posts_path(:controller => "posts", :action => "create_thread"), :method => "post") do%>
Title:
<br></br>
<%= text_area_tag 'title', 'Thread\'s title is required!', :rows => 1, :cols => 30 %>
<br></br>
Message:
<br></br>
<%= text_area_tag 'body', nil, :rows => 15, :cols => 50 %>
<br></br>
<%= submit_tag "Create Thread" %>
<% end %>
Я определил "create_thread" метод в контроллере:
class PostsController < ApplicationController
def create_thread
logger.info("Thread created: ")
end
end
В routes.rb файл, я создал маршрут для подавать:
resources :posts do
collection do
post 'index', :as => :create_thread
end
в принципе, когда я нажимаю на кнопку «Создать тему» на форме, я хотел бы г ails выполнить функцию «create_thread» в классе PostsController, а затем загрузить страницу «index».
Однако, когда я нажал кнопку «Создать тему», он сразу же попал на страницу «индекс» (так что путь работает, по крайней мере), но он не выполнил функцию «create_thread» в контроллер.
Это было то, что он показал на консоли, когда я нажал на кнопку:
Started POST "/posts?action=create_thread" for 127.0.0.1 at 2013-07-14 22:08:35 -0700
Processing by PostsController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"9XVUrStaysmdOc6ug/A3XXX/8bzLkY8ixCkiAfHs9fU=", "title"=>"Thread's title is required!", "body"=>"", "commit"=>"Create Thread"}
Вот выход рейк маршрутов
root / posts#index
new_thread_posts GET /posts/new_thread(.:format) posts#new_thread
create_thread_posts POST /posts(.:format) posts#index
current_thread_post GET /posts/:id/current_thread(.:format) posts#current_thread
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
Итак, как же я получаю рельсы выполнить команду " create_thread "в PostsController? Я занимаюсь поиском через Интернет за последние 2 дня и пробую всевозможные вещи, но никто не работал на меня.
Подсказка или указатель были бы очень благодарны!
Заранее благодарю вас за помощь.
добавить вывод «рек маршруты» –
вы пытались использовать redirect_to внутри create_thread действий после регистрации? –
@ prasad.surase Я обновил сообщение с выходом рейк-маршрутов. Спасибо – TATN