我是铁杆新手。目前正试图从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]}.
任何帮助都会很棒。
答案 0 :(得分:0)
@movie
由于某种原因没有坚持,因此redirect_to
尚未执行。将else
语句添加到条件:
if @movie.save
redirect_to movies_path(@movie)
else
render action: 'new'
end