私のビューresult.html.erbで@resultにアクセスできます。@result は Movie オブジェクトです。この @result オブジェクトのコメントをフォームから作成したいと思います。result.html.erb 内にコメント ボックス (フォーム) を配置しています。
フォームの構文は初めてです。また、送信後にフォーム自体をどこに送信するかについても混乱しています。create アクションを使用して、コメント用に新しいコントローラーをまとめて作成する必要がありますか?
@result.comments.last に保存されるようにこのフォームを作成する方法がわかりません
どんな助けでも大歓迎です!投稿されたのは私のモデルとコントローラーです。
class Movie < ActiveRecord::Base
attr_accessible :mpaa_rating, :poster, :runtime, :synopsis, :title, :year
has_many :comments
end
class Comment < ActiveRecord::Base
attr_accessible :critic, :date, :publication, :text, :url
belongs_to :movie
end
class PagesController < ApplicationController
def index
end
def search
session[:search] = params[:q].to_s
redirect_to result_path
end
def result
search_query = search_for_movie(session[:search])
if !search_query.nil? && Movie.find_by_title(search_query[0].name).nil?
save_movie(search_query)
save_reviews(search_query)
end
@result ||= Movie.find_by_title(search_query[0].name)
end
end
結果.html.erb
私は simple_form gem の方が優れていると思っていたので使用していましたが、私のユース ケースは標準の Rails フォーム ヘルパーを使用するだけで十分シンプルだと思います。私が間違っている場合は、私を修正してください。これまでに書いたものは次のとおりです。
<%= simple_form_for @result do |f| %>
<%= f.input :text %>
<%= f.input :critic %>
<%= f.button :submit %>
<% end %>
エラーが表示されます:
undefined method `movie_path' for #<#<Class:0x000001013f4358>:0x00000102d83ad0>