2016-04-01 3 views
1

Я пытаюсь решить действительно простую проблему с моим кодом. Я хочу загрузить изображение в сообщение, я использую paperclip, и последний шаг не работает.Ошибка с моими маршрутами для загрузки изображения

Это мой контроллер:

class PostsController < ApplicationController 
 

 
    def index 
 
    @posts = Post.all 
 
    end 
 

 
    def new 
 
    \t @post = Post.new 
 
    end 
 

 
    def create 
 
\t @post = Post.new(post_params) 
 
    if @post.save 
 
    flash[:success] = "uccess!" 
 
    redirect_to post_path(@post) 
 
    else 
 
    flash[:error] = @post.errors.full_messages 
 
    redirect_to new_post_path 
 
    end 
 

 
    end 
 

 
    def show 
 
    @post = Post.find(params[:id]) 
 
    end 
 

 

 

 
private 
 

 
def post_params 
 
\t params.require(:post).permit(:title, :image, :prix, :adress, :description) 
 
end 
 
end

, что моя форма:

<%= simple_form_for @post, url: root_path do |f|%> 
 
<%= f.input :title, label: "Nom du plat" %> 
 
<br> 
 
<%= f.input :image, as: :file %> 
 
<br> 
 
<%= f.input :prix %> 
 
<%= f.input :adress, label: "Localisation" %> 
 
<%= f.input :description %> 
 
<br> 
 
<%= f.button :submit %> 
 
<% end %>

и что с моей точки зрения:

<%= image_tag (@post.image.url(:medium)) %> 
 
<br> 
 

 
<%= @post.description %> 
 
<br> 
 

 
<button> 
 
\t <%= link_to "Home", root_path %> 
 

 

 
</button>

Так что, если вы идете через, и вы заметили глупую ошибку, пожалуйста, дайте мне знать.

+0

Спасибо за исправление –

+0

что не работает? – toddmetheny

+0

Ну, когда я хочу, чтобы проверить содержание сообщения, чтобы создать его, рельсы отправить мне сообщение об ошибке: Нет маршрут матчей [POST] «/» Маршрутов: Rails.application.routes.draw сделать devise_for: пользователи ресурсов: сообщения root 'posts # index' –

ответ

0

Вы вызываете root_path в качестве помощника в своей форме, когда вам нужно называть маршрут для сообщения. Запустите маршруты рейка и найдите действие создания, связанное с сообщением, которое должно быть таким же, как маршрут get для действия show.

Это не должно быть root_path:

<%= simple_form_for @post, url: root_path do |f|%> 
+0

Когда я запускаю маршруты рейка, единственный путь, который пуст, для создания из сообщения, поэтому я пытаюсь post_path posts_path, и после этого я не могу открыть свою страницу создания для новой сообщения –

+0

обновите свой вопрос с помощью выходных маршрутов рейка, и я скажу вам, что это должно быть – toddmetheny

+0

Моя ошибка, я сделал nt try posts_path, а теперь = Это работает !!!! Спасибо большое @toddmetheny –

Смежные вопросы