【发布时间】:2015-12-18 08:17:16
【问题描述】:
我正在学习 Ruby on Rails,并开始通过 http://guides.rubyonrails.org/getting_started.html#showing-articles 制作这个小博客应用程序。 现在我在 5.10,我需要向表单添加验证,所以如果用户添加长度小于 5 的标题。
这是我的articles_controller.rb:
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def show
@article = Article.find(params[:id])
end
def new
end
def create
#render plain: params[:article].inspect
#@article = Article.new(params[:article])
@article = Article.new(article_params)
#@article.save
if @article.save
redirect_to @article
else
render 'new'
end
redirect_to @article
end
private
def article_params
params.require(:article).permit(:title, :text)
end
end
在这个视图中我有一个错误(new.html.erb):
<%= form_for :article, url: articles_path do |f| %>
<% if @article.errors.any? %>
<% 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 %>
<%= link_to 'Back', articles_path %>
这是我得到的错误:
我是 Ruby 和 Rails 的新手,所以希望能得到一些帮助。
【问题讨论】:
-
Marek Lipka 给了你正确的答案。其他几件事 - 在 Ruby(和 Rails)中,使用缩进被认为是一种很好的风格,由 2 个空格(而不是 4 个)组成。此外,在您的创建操作中不需要第二个
redirect_to @article。 -
是的,现在可以使用了,感谢 Marek Lipka。但是我能解释一下为什么我需要这条线或它的作用吗?
-
为什么考虑使用由 2 个空格组成的缩进?
-
@GillisWerrebrouck 我已经给你解释过了。您需要这个,因为它初始化了
@article变量,这是您在视图中需要的。 -
2 空格缩进只是 Ruby 中的一种约定,几乎所有专业的 Ruby 编程人员都遵循。