【发布时间】:2016-05-13 09:59:27
【问题描述】:
我在加载页面时遇到了这个错误,我猜它与我在控制器中的 create 方法有关 我的控制器是这样的
class StoryController < ApplicationController
def index
@story = Story.all
end
def new
@story = Story.new
end
def create
@story = Story.new(story_params)
if @story.save
flash[:notice] = "Story created successfully"
flash[:color]= "valid"
else
flash[:notice] = "Story is invalid, man"
flash[:color]= "invalid"
end
end
def show
@story = Story.find(params[:id])
end
private
def story_params
params.require(:story).permit(:story_title, :story_body)
end
end
我的 create.html.erb 看起来像
<%= form_for @story ,url: story_path do |f| %>
<%= label :story, :title %><br />
<%= text_field :story, :story_title %>
<%= label :story, :body %><br />
<%= text_field :story, :story_body %>
<%= submit_tag 'Create story' %>
<% end %>
我的 create.html.erb 以前看起来不像这样,在我阅读了一些关于 form_for 将如何工作而不是 story_params 的 form_tag 的问题后,我将其更改为。 但无论哪种方式,我仍然会收到错误,我想知道为什么以及是否有解决方法。
【问题讨论】:
-
你有
create.html.erb?认真的吗? -
你创建的参数是什么? (查看您的服务器正在运行的控制台窗口。)
-
我对 Rails 还是很陌生,难道我不应该有一个 create.html.erb
-
应该是
new.html.erb -
它只是说参数丢失或值为空:控制台日志上的故事
标签: ruby-on-rails ruby forms activerecord