Скрепка с рельсами 3.1 ошибка с маршрутами - PullRequest
0 голосов
/ 15 декабря 2011

Итак, я следовал инструкциям здесь: http://doganberktas.com/2010/09/14/amazon-s3-and-paperclip-rails-3/

В моей модели профиля у меня есть:

  attr_accessor  :pic_file_name (this was requested on first attempt)
  has_attached_file :pic,
       :styles => {
       :thumb=> "100x100#",
       :small  => "400x400>" },
     :storage => :s3,
     :s3_credentials => "#{Rails.root}/config/s3.yml",
     :path => "/:style/:id/:filename"

У меня есть ресурсы: профили в моих маршрутах.

мое представление имеет следующее:

<%= form_for :profile, @profile, :url => profile_path, :html => { :multipart => true } do |f| %>
<%= f.file_field :pic %>
<%= f.submit :class => "button-style", :value => "Upload File" %>
<% end %>

Когда я просматриваю страницу, я получаю эту ошибку: ни один маршрут не соответствует {: action => "show",: controller => "profile"}.Хотя я могу вас заверить, у меня есть контроллер профилей с действием show.

Если я изменю представление на

<%= form_for :profile, @profile, :url => @profile, :html => { :multipart => true } do |f| %>
<%= f.file_field :pic %>
<%= f.submit :class => "button-style", :value => "Upload File" %>
<% end %>

Это говорит мне, что у меня неверное количество аргументов (3 для2)

Тогда, если я изменю вид на

<%= form_for @profile, :url => profile_path, :html => { :multipart => true } do |f| %>
<%= f.file_field :pic %>
<%= f.submit :class => "button-style", :value => "Upload File" %>
<% end %>

Страница загрузится, и я могу загрузить изображение.Однако, попытка напечатать его позже, используя:

<% = current_user.profile.pic%>, дает мне: /pics/original/missing.png (как и profile.pic.url)

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Это кажется глупым (как вышеописанное работало для меня раньше) - но это исправило это:

изменив представление на:

<%= form_for(@profile, :html => { :multipart => true }) do |f| %>
0 голосов
/ 11 июня 2012

Спасибо за решение. Кстати,

<%= form_for (@profile, :html => { :multipart => true }) do |f| %>

У меня не сработало, но

<%= form_for(@profile, :html => { :multipart => true }) do |f| %>

Работал. То пространство, которое у меня было после form_for, похоже, сломало вещи и могло быть причиной моих проблем.

...