创建一个“POST”表单
问题描述:
我不知道如何创建一个POST表单。我目前有一个表单,它接受用户输入并在我的电影表中创建一个条目。我想要一个按钮,它具有一组给定的属性,并在用户只点击一个按钮时将其添加到表中。创建一个“POST”表单
在我的搜索控制器我有:
def index
@movie = Movie.new
end
这是搜索的索引视图:
<%= simple_form_for(@movie, :url => { :action => "create" }) do |f| %>
<%= f.input :title, :as => :hidden, :input_html => { :value => "Skyfall" } %>
<%= f.input :year, :as => :hidden, :input_html => { :value => "2012" } %>
<%= f.input :description, :as => :hidden, :input_html => { :value => "James Bond" } %>
<%= f.association :genres, include_blank: false, :as => :hidden, :input_html => { :value => "some value" } %>
<%= f.button :submit, class: "btn btn-warning" %>
<% end %>
目前其路由到[HTTP://本地主机:3000/search.4理想情况下我希望它的路线[HTTP://本地主机:3000 /电影/ 4]
路线:
searches GET /searches(.:format) searches#index
POST /searches(.:format) searches#create
new_search GET /searches/new(.:format) searches#new
edit_search GET /searches/:id/edit(.:format) searches#edit
search GET /searches/:id(.:format) searches#show
PUT /searches/:id(.:format) searches#update
DELETE /searches/:id(.:format) searches#destroy
movies GET /movies(.:format) movies#index
POST /movies(.:format) movies#create
new_movie GET /movies/new(.:format) movies#new
edit_movie GET /movies/:id/edit(.:format) movies#edit
movie GET /movies/:id(.:format) movies#show
PUT /movies/:id(.:format) movies#update
DELETE /movies/:id(.:format) movies#destroy
search GET /search(.:format) movies#search
genres GET /genres(.:format) genres#index
POST /genres(.:format) genres#create
new_genre GET /genres/new(.:format) genres#new
edit_genre GET /genres/:id/edit(.:format) genres#edit
genre GET /genres/:id(.:format) genres#show
PUT /genres/:id(.:format) genres#update
DELETE /genres/:id(.:format) genres#destroy
root / movies#index
的routes.rb
Movies::Application.routes.draw do
resources :searches
resources :movies
get 'search', to: 'movies#search', as: :search
resources :genres
root :to => 'movies#index'
end
答
那是因为你是从搜索控制器/视图调用它,你可以试试:
<%= simple_form_for @movie do |f| %>
或
<%= simple_form_for @movie, url: movie_path(@movie) do |f| %>
或最坏的情况(因为它将是一条固定的路径):
<%= simple_form_for @movie, url: movies_path, method: post do |f| %>
+0
我去了最后一个建议。这工作。非常感谢! – emailnitram 2013-03-04 04:12:18
请向我们展示为此创建操作定义的路线。我认为这是问题。 – 2013-03-04 00:02:59
编辑的问题与路线 – emailnitram 2013-03-04 00:11:38
这对我来说是没有意义的,该路线正在基于耙路线输出使用。你能不能显示Config/routes.rb的内容? – 2013-03-04 00:13:37