Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:To-Do-App-Can';t将我的表单与待办事项索引页连接_Ruby On Rails_Ruby_Ruby On Rails 3_Forms - Fatal编程技术网

Ruby on rails RubyonRails:To-Do-App-Can';t将我的表单与待办事项索引页连接

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?

我正在尝试在RubyonRails上创建一个“待办事项”应用程序,它使用一个简单的“名称”表单来生成待办事项列表

我成功地创建了表单和主索引页,但我无法将两者连接起来。这意味着我可以键入并填写表单,但当我提交表单时,它只会将我带回索引页面,而没有列出表单项。我被难住了

以下是我的代码视图:

欢迎控制器:

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!!