Form_helper和路由

时间:2014-11-15 21:48:12

标签: ruby-on-rails ruby resources form-helpers

我是铁杆新手。目前正试图从api中提取并将每个api请求的值存储到一个表单中以便进入我的数据库。

我的页面顶部有一个搜索栏,它会从api中提取表单并将每个结果的值返回到屏幕,并带有一个提示添加到数据库的按钮。

<ul>
<% @movies.each do |movie| %>
<li><%= movie['Title'] %> | <%= movie['Year'] %> |
<%= form_tag(movies_path, :method => "post") do %> <%=hidden_field :movie, :title, :value =>     movie["Title"] %> <%= hidden_field :movie, :year, :value => movie["Year"] %> <%= hidden_field :movie, :imdb_id, :value => movie['imdbID'] %> <%= submit_tag "Add Movie", :name => nil %> <% end %> </li><br>
<% end %>
</ul>

我为我的索引/搜索结果页面创建@movie的控制器是这个

class MoviesController < ApplicationController

def index
    if params[:search].present?
        @movies = Omdbapi.search(params[:search])
    else
        render :'/watchlists'
    end
end

def show
    @movie = Omdbapi.more_info(params[:imdb_id])
end

def create
        @movie = Movie.new(movie_params)
    if @movie.save
        redirect_to movies_path(@movie)
    end
end

当我尝试按提交导轨时抛出此错误

Missing template movies/create, application/create with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

@movie由于某种原因没有坚持,因此redirect_to尚未执行。将else语句添加到条件:

   if @movie.save
     redirect_to movies_path(@movie)
   else 
     render action: 'new'
   end