我的rails下拉表单生成零无论选择什么我如何修复它?

时间:2014-07-29 19:37:07

标签: ruby-on-rails forms ruby-on-rails-4 form-for

我是RoR的新手,我一直在搜索和搜索,但似乎无法找到解决方案。我有一个简单的表格:

<%= form_for @case do |f| %>
<%= f.select( :case, options_for_select([['CASE1','CASE1'],['CASE2','CASE2'],['CASE3','CASE3'],['CASE4','CASE4']])) %>
<% end %>

那是在我的导航栏中。它不基于数据库中的任何表。

控制器:

class MyAppController < ApplicationController
before_filter :initialize_remote_user

   def self.search(name)
     @results = MyApp.search(params[:name])
     @case = params[:case]
    end

   def result
     @results =  MyApp.where("name = ?",params[:name]).order("item_scan_date ASC")
     puts @results.inspect
   end

   def update
    end

   def change
     end

   def show
    @case = params[:case].inspect
   end

   def create
   end

   def new
   end

   def index
   end

  private

  def name_params
     params.require(:name).permit(:name)
  end

  def case_params
     params.require(:case).permit(:case, :id)
  end

当我@case = params[:case].inspect时,它没有任何错误,但它不会从<%= form_for @case do |f| %>

中提取数据

我试过了

def show
@case = Case.find(params[:case])
end

但最终NameError uninitialized constant MyAppController::Case

出现@case = Case.find(params[:case])错误

除了@case

之外,我似乎无法提取nil

如果@case = params[:case]中有def show我得到'ArgumentError表单中的第一个参数在<%= form_for @case do |f| %>

时不能包含nil或为空错误

1 个答案:

答案 0 :(得分:0)

为表单尝试simple_form,请参阅:https://github.com/plataformatec/simple_form并阅读Collections下的文档以处理:case的输入

还要确保您的创建方法和新方法不为空,否则您的表单将无法保存。

希望它有所帮助。