变量没有显示在rails博客文章中

时间:2015-10-12 15:14:14

标签: ruby-on-rails

我正在使用rails构建一个简单的博客工具,并且无法显示从表单中显示的变量。最令人困惑的是,帖子时间显示正确,但标题和文字都没有通过。

我的新表单页面如下:

<h1>New post</h1>

<%= form_for :blog, url: blogs_path do |f| %>
<p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
</p>

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

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

控制器目前是:

class BlogsController < ApplicationController
def index
end

def new
end

def create
    @blog = Blog.new(post_params[:id])
    @blog.save

    redirect_to @blog
end

def show
    @blog = Blog.find(params[:id])
end

private
    def post_params
        params.require(:blog).permit(:title, :body)
    end
end

显示页面是:

<div id="blog">
    <h1>
        <%= @blog.title %>
    </h1>

    <p class="date">
        Submitted <%= time_ago_in_words(@blog.created_at) %> ago
    </p>

    <p>
        <%= @blog.body %>
    </p>
</div>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

变化:

def create
    @blog = Blog.new(post_params[:id])
    @blog.save

    redirect_to @blog
end

为:

def create
    @blog = Blog.new(post_params)
    @blog.save

    redirect_to @blog
end

它无法正常工作的原因是您只是试图保存post_params[:id]。在创建新的博客帖子Blog.new(post_params)

时,您需要将整个参数作为参数传递