【问题标题】:Syntax error in Ruby Post ControllerRuby Post 控制器中的语法错误
【发布时间】:2013-07-06 18:37:17
【问题描述】:

首先,我是 ruby​​ 新手。我正在从头开始建立一个论坛以获取乐趣。

已完成授权工作,可以发布带有原始内容的新主题,但我的帖子(回复)控制器有问题。

这是我得到的错误:

SyntaxError in PostsController#new

/Users/mlegacy/Documents/RubyProjects/forum/app/controllers/posts_controller.rb:48: syntax 
error, unexpected keyword_end, expecting $end

这是我的控制器代码:

class PostsController < ApplicationController

  def index
    @posts = Post.order("sticky desc")
  end

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

  def new
    @post = Post.new
  end

  def create
    @post = Post.new(post_params)
    @post.user = current_user
  if @post.save
    redirect_to topics_url, notice: "Post created."
  else
    render :new
  end
end

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

def update
  @post = Post.find(params[:id])
    redirect_to topics_url, notice: "Updated post."
  else
    render :edit
  end
end

def destroy
  @post = Post.find(params[:id])
  @post.destroy
  redirect_to topics_url, notics: "Post removed."
end

private

  def post_params
    params.require(:posts).permit(:content, :created_at, :updated_at)
  end
end

还有我的模特:

class Post < ActiveRecord::Base
  belongs_to :topic
end

然后是 topic#show 视图和 posts#new 视图:

主题#显示:

<h1><%= @topic.name %></h1>
<p><%= @topic.post_content %></p>

<% @topic.posts.each do |post| %>
  <div class="post">
    <%= post.content %>
  </div>
<% end %>

<p><%= link_to "Post new reply", posts_new_path %></p>

<p><%= link_to "Back to topics", topics_path %></p>

帖子#新

<h1>New Post</h1>

<%= render 'form' %>

【问题讨论】:

    标签: ruby-on-rails model-view-controller model controller syntax-error


    【解决方案1】:

    您在更新操作中错过了“如果”。

    def update
      if @post = Post.find(params[:id])
        redirect_to topics_url, notice: "Updated post."
      else
        render :edit
      end
    end
    

    【讨论】:

    • 天哪,人们所做的愚蠢的事情......感谢你抓住那个兄弟。知道它一定是愚蠢的,因为它是一个语法错误。
    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2018-05-03
    相关资源
    最近更新 更多