【发布时间】:2015-05-17 22:47:26
【问题描述】:
我正在尝试制作简单的应用程序。我将我的名字和姓氏输入到简单的<%= form_for @data do |f| %> rails 表单中,提交后,应用程序应该呈现这样的简单文本。 My first name is <%= data.first_name %> and my last name is <%= data.last_name %>。我不知道为什么,但我的应用程序说这个错误:
未定义的局部变量或方法“数据”
这可能是因为没有参数传递给视图。
这是我的代码。
routes.rb
resources :data, only: [:new, :create, :index]
data_controller.rb
class DataController < ApplicationController
def new
@data = Data.new
end
def index
end
def create
@data = Data.new(data_params)
if @data.valid?
redirect_to @data
else
render :new
end
end
private
def data_params
params.require(:data).permit(:first_name, :second_name)
end
end
/views/data/new.html.erb
<%= form_for @data do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :second_name %>
<%= f.text_field :second_name %>
<%= f.submit 'Continue', class: 'button' %>
<% end %>
/views/data/index.html.erb
<h2>Coolest app ever :D</h2>
<p>My first name is: <%= data.first_name %>.</p>
<p>And my second name is: <%= data.second_name %>.</p>
/models/data.rb
class Data
include ActiveModel::Model
attr_accessor :first_name, :second_name
validates :first_name, :second_name, presence: true
end
请帮助找出为什么参数没有传递到下一页。无论如何谢谢:D
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 model-view-controller