Ruby on rails 请检查以下问题:Rails创建的帖子
我不知道为什么,但当我试图创建帖子时,我遇到了这个错误。 我创造了一个脚手架柱 然后我想在一个不同的控制器中获得我的帖子,在我的控制器主页中 我在我的Post.rb中放置了属于:home 在这一步中,一切都很好。 但当我尝试创建帖子时,我得到了以下信息,请检查以下问题: PostsControllercreate作为HTML参数处理:{utf8=>✓, 真实性令牌=>0QgNSnhZWnsa+U9iYi1RB2Yk+qoW1be0Mj/o3579Es74oKBD452HQxZF144KBhR+in7UaSf9OLpzAyn8aJrB6A==,post=>{title=>sfsf,content=>SDFSFS,author=>SDFSDF},commit=>Create post}0.4ms开始0.3ms回滚布局内呈现帖子/new.html.erb/布局内应用程序呈现帖子/new.html.erb/应用程序14.6ms用户加载0.7ms选择用户。来自用户,其中users.id=2 ORDER BY users.id ASC LIMIT 1呈现布局/_header.html.erb 6.8ms呈现布局/_footer.html.erb 0.9ms在1512ms视图中完成了200次OK:381.2ms |活动记录:1.4ms* post_controller.rbRuby on rails 请检查以下问题:Rails创建的帖子,ruby-on-rails,ruby,Ruby On Rails,Ruby,我不知道为什么,但当我试图创建帖子时,我遇到了这个错误。 我创造了一个脚手架柱 然后我想在一个不同的控制器中获得我的帖子,在我的控制器主页中 我在我的Post.rb中放置了属于:home 在这一步中,一切都很好。 但当我尝试创建帖子时,我得到了以下信息,请检查以下问题: PostsControllercreate作为HTML参数处理:{utf8=>✓, 真实性令牌=>0QgNSnhZWnsa+U9iYi1RB2Yk+qoW1be0Mj/o3579Es74oKBD452HQxZF144KBhR+i
class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
# GET /posts
# GET /posts.json
def index
@posts = Post.all.order("created_at DESC")
end
# GET /posts/1
# GET /posts/1.json
def show
@posts
end
# GET /posts/new
def new
@post = Post.new
end
# GET /posts/1/edit
def edit
end
# POST /posts
# POST /posts.json
def create
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html {redirect_to @post, notice: 'Article crée.'}
format.json {render :show, status: :created, location: @post}
else
format.html {render :new}
format.json {render json: @post.errors, status: :unprocessable_entity}
end
end
end
# PATCH/PUT /posts/1
# PATCH/PUT /posts/1.json
def update
respond_to do |format|
if @post.update(post_params)
format.html {redirect_to @post, notice: 'Article édité.'}
format.json {render :show, status: :ok, location: @post}
else
format.html {render :edit}
format.json {render json: @post.errors, status: :unprocessable_entity}
end
end
end
# DELETE /posts/1
# DELETE /posts/1.json
def destroy
@post.destroy
respond_to do |format|
format.html {redirect_to posts_url, notice: 'Article supprimé.'}
format.json {head :no_content}
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_post
@post = Post.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def post_params
params.require(:post).permit(:title, :content, :author)
end
end
post/new.html.erb
<div class="container left-box">
<h1 class="left-box-title">Ajouter un article</h1>
<%= simple_form_for @post, wrapper: :vertical_form do |f| %>
<%= f.error_notification %>
<%= f.input :title, label: 'Titre' %>
<p>Contenu</p>
<%= f.text_area :content, class: 'col-md-12 form-control content_post_create' %>
<%= f.input :author, label: 'Auteur' %>
<%= f.button :submit, class: "btn-primary", label: 'Mettre en ligne' %>
<%= f.button :button, "Recommencer", type: "reset", class: "btn-outline-secondary" %>
<% end %>
<%= link_to "Retour à l'accueil", posts_path %>
</div>
您的错误来自Post.rb中的归属:home:
“属于”关联创建与另一个关联的一对一匹配
模型在数据库术语中,该关联表示该类
包含外键
如果在表单中添加错误完整消息,如下所示:
<%= simple_form_for @post, wrapper: :vertical_form do |f| %>
<ul>
<% @post.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
...
<% end %>
您应该看到这个错误:Home必须存在
要解决您的问题,您可以删除“属于”关联,或者,如果Home确实是一个模型,请在保存前在创建操作中将Home id添加到@post。控制台日志中没有指定错误。你能试试救命吗!而不是在创建操作中保存?自救!将返回更具体的错误消息。在控制器中使用具有不同名称的模型时,不需要关联。我真的不明白你是怎么得出这个结论的。