2014-01-20 3 views
0

Я только что начал изучать рубин на рельсах. Я последовал за гидом по телефону http://edgeguides.rubyonrails.org/getting_started.html.СинтаксисError в PostsController # index in ruby ​​on rails

posts_controller.rb файл содержит следующий код

class PostsController < ApplicationController 

def create 
    @post = Post.new(post_params) 

    if @post.save 
    redirect_to @post 
    else 
    render 'new' 
    end 
end 

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

def index 
    @posts = Post.all 
end 

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

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

    if @post.update(post_params) 
    redirect_to @post 
    else 
    render 'edit' 
    end 
end 

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

    redirect_to posts_path 
end 

private 
    def post_params 
    params.require(:post).permit(:title, :text) 
    end 

И мой app/views/posts/new.html.erb файл содержит

<h1>New post</h1> 
<%= form_for :post, url: posts_path do |f| %> 
<% if @post.errors.any? %> 
    <div id="error_explanation"> 
    <h2><%= pluralize(@post.errors.count, "error") %> prohibited 
     this post from being saved:</h2> 
    <ul> 
    <% @post.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
    <% end %> 
    </ul> 
    </div> 
    <% end %> 
    <p> 
    <%= f.label :title %><br> 
    <%= f.text_field :title %> 
    </p> 

    <p> 
    <%= f.label :text %><br> 
    <%= f.text_area :text %> 
    </p> 

    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 
<%= form_for :post do |f| %> 
    ... 
<% end %> 

<%= render 'form' %> 

<%= link_to 'Back', posts_path %> 

Также app/views/posts/edit.html.erb содержит

<h1>Edit post</h1> 

<%= form_for :post, url: post_path(@post), method: :patch do |f| %> 
    <% if @post.errors.any? %> 
    <div id="error_explanation"> 
    <h2><%= pluralize(@post.errors.count, "error") %> prohibited 
     this post from being saved:</h2> 
    <ul> 
    <% @post.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
    <% end %> 
    </ul> 
    </div> 
    <% end %> 
    <p> 
    <%= f.label :title %><br> 
    <%= f.text_field :title %> 
    </p> 

    <p> 
    <%= f.label :text %><br> 
    <%= f.text_area :text %> 
    </p> 

    <p> 
    <%= f.submit %> 
    </p> 

<% end %> 

<%= render 'form' %> 

<%= link_to 'Back', posts_path %> 

SyntaxError in PostsController#index 
C:/Users/punitha/blog/app/controllers/posts_controller.rb:50: syntax error, unexpected end-of-input, expecting keyword_end 

Rails.root: C:/Users/punitha/blog 

Application Trace | Framework Trace | Full Trace 
Request 

Parameters: 

None 
Toggle session dump 
Toggle env dump 
Response 

Headers: 

none. 
+1

Мы не нужны просмотра шаблонов, ошибка - как указано в сообщении об ошибке - в строке 50 вашей 'posts_controller. rb'. Проблема заключается в отсутствии инструкции 'end'. Возможно, вы публикуете свой полный код контроллера - в вставленном коде все кажется прекрасным. –

+1

, пожалуйста, напишите полный файл 'posts_controller.rb'. – Surya

+0

Вы должны опубликовать весь файл 'posts_controller.rb', а не только содержимое этого класса. Исправление отступов в коде может дать вам представление о том, где отсутствует «конец». – csexton

ответ

1

Похоже отсутствующего end в самом низу posts_controller.rb

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