Ruby on rails RubyonRails:To-Do-App-Can';t将我的表单与待办事项索引页连接
我正在尝试在RubyonRails上创建一个“待办事项”应用程序,它使用一个简单的“名称”表单来生成待办事项列表 我成功地创建了表单和主索引页,但我无法将两者连接起来。这意味着我可以键入并填写表单,但当我提交表单时,它只会将我带回索引页面,而没有列出表单项。我被难住了 以下是我的代码视图: 欢迎控制器:Ruby on rails RubyonRails:To-Do-App-Can';t将我的表单与待办事项索引页连接,ruby-on-rails,ruby,ruby-on-rails-3,forms,Ruby On Rails,Ruby,Ruby On Rails 3,Forms,我正在尝试在RubyonRails上创建一个“待办事项”应用程序,它使用一个简单的“名称”表单来生成待办事项列表 我成功地创建了表单和主索引页,但我无法将两者连接起来。这意味着我可以键入并填写表单,但当我提交表单时,它只会将我带回索引页面,而没有列出表单项。我被难住了 以下是我的代码视图: 欢迎控制器: class WelcomeController < ApplicationController def index if user_signed_in?
class WelcomeController < ApplicationController
def index
if user_signed_in?
redirect_to :controller => "todoodoo" , :action => "index"
end
end
def home
@todos = Todoodoo.where(done: false)
@completes = Todoodoo.where(done: true)
end
end
我是Rails开发的新手,所以如果我遗漏了一些东西或者这没有意义,我向您道歉。我已经尽了最大努力来包含每个依赖文件。谢谢你的任何意见,你可以添加。谢谢(另外,请原谅我的格式设置,请知道我的代码中的格式设置没有任何错误)尝试通过删除:url来简化表单。现在,您的表单混淆了执行新操作和任务列表的索引操作
<h1> Add new item to your To-Do list </h1>
<%= form_for @todo do |f| %>
<%= f.label :Name %>: <%= f.text_field :name %>
<%= f.hidden_field :done, :value => false %>
<%= f.submit "Add to To-Do list", class: "btn btn-primary" %>
<% end %>
将新项目添加到待办事项列表中
:
假%>
既然你是新人,下面是你需要做的
顺便说一下,我强烈推荐。如果您正在学习该系统,那么使用遗留代码来完成它是没有意义的
--
#文件
gem“rails”、“4.1.5”
#config/routes.rb
根目录为:“todoodoos#索引”
资源:todoodoo
#app/controllers/todoodoo_controller.rb
类TodoodooController
这将使您能够添加以下视图:
#app/views/todoodoo/index.html.erb
<% @todoodoo.all.each do |todo| %>
<%= link_to todo.name, todo %> #-> goes to show action
<% end %>
#app/views/todoodoo/new.html.erb
<%= form_for @todoodoo do |f| %> #-> goes to create action
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
#app/views/todoodoo/create.html.erb
Succesfully created!!
#app/views/todoodoo/index.html.erb
#->去表演动作
#app/views/todoodoo/new.html.erb
#->转到创建操作
#app/views/todoodoo/create.html.erb
成功创建!!
如果你尝试一下,我可以解释它是如何工作的&发现它确实有效
您当前的设置非常冲突,我觉得最好为您提供所需的代码 真的很欣赏你的代码,Rich!它工作得很好。代码是有意义的。谢谢你简化了代码!嗨,里奇。似乎我的params函数(todo_params)遇到了问题。我在控制台中遇到了这个错误:“param缺失或值为空”你能帮我理解为什么这不起作用吗?谢谢Paul-你知道哪个
param
缺失或为空吗?我不确定哪个“param”缺失,但是这些信息可以帮助您:在代码部分的“params.require(:todoodoo.permit(:name)”中,“(:todoodoo)”指向什么?
<h1> Add new item to your To-Do list </h1>
<%= form_for @todo, :url => todoodoo_index_path(@todo) do |f| %>
<%= f.label :Name %>: <%= f.text_field :name %>
<%= f.hidden_field :done, :value => false %>
<%= f.submit "Add to To-Do list", class: "btn btn-primary" %>
<% end %>
Rails.application.routes.draw do
get 'welcome/home'
get 'todoodoo/index'
match "todoodoo/index" => "todoodoo#index", :via => :post
get 'people/new'
devise_for :users
root 'welcome#home'
resources :todoodoo do
member do
put :complete
end
end
<h1> Add new item to your To-Do list </h1>
<%= form_for @todo do |f| %>
<%= f.label :Name %>: <%= f.text_field :name %>
<%= f.hidden_field :done, :value => false %>
<%= f.submit "Add to To-Do list", class: "btn btn-primary" %>
<% end %>
#Gemfile
gem 'rails', '4.1.5'
#config/routes.rb
root to: "todoodoos#index"
resources :todoodoo
#app/controllers/todoodoo_controller.rb
Class TodoodooController < ApplicationController
def index
@todoodoos = Tododoo.all
end
def new
@todoodoo = Todoodoo.new
end
def create
@todoodoo = Todoodoo.new(todo_params)
@todoodoo.save
end
private
def todo_params
params.require(:todoodoo).permit(:name)
end
end
#app/views/todoodoo/index.html.erb
<% @todoodoo.all.each do |todo| %>
<%= link_to todo.name, todo %> #-> goes to show action
<% end %>
#app/views/todoodoo/new.html.erb
<%= form_for @todoodoo do |f| %> #-> goes to create action
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
#app/views/todoodoo/create.html.erb
Succesfully created!!