Rails правильно проходят через id через форму - PullRequest
0 голосов
/ 26 февраля 2012

Мне просто нужна ясность мысли об этом.У меня есть страница с фотографиями, на которой пользователь может щелкнуть «Мне нравится», чтобы создать новую запись like для определенной photo.

. На моей странице фотографий show.html у меня есть следующая форма:

<%= form_for :like, :url => likes_path do |f| %>
  <%= hidden_field_tag(:photo_id, @photo.id) %>
  <%= f.submit "Like" %>
<% end %>

Когда я нажимаю на форму, я получаю сообщение, что «Не удалось найти фотографию без идентификатора»:

Started POST "/likes" for 127.0.0.1 at Sat Feb 25 16:43:21 -0500 2012
Processing by LikesController#create as HTML
Parameters: {"commit"=>"Like", "authenticity_token"=>"cQnuAHb/f6Sgo3aB5xPKErx3joQTV+DHGs0w9vi13vM=", "utf8"=>"\342\234\223", "photo_id"=>"47"}
Completed 404 Not Found in 68ms

ActiveRecord::RecordNotFound (Couldn't find Photo without an ID):
  app/controllers/likes_controller.rb:8:in `create'

Не уверен, почему, когда кажется, что он проходитв photo_id правильно, нет?Вот посмотрите на мою likes_controller:

def create
  @photo = Photo.find(params[:id])
  @like = Like.new(:photo_id => :photo_id, :user_id => current_user.id)
end

Кто-нибудь видит, что я здесь делаю не так?Спасибо.

1 Ответ

1 голос
/ 26 февраля 2012

Должен работать с Photo.find(params[:photo_id]).

В сообщении об ошибке говорится, что вы вызвали Photo.find с параметром nil, например, в запросе нет параметра id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...