1

我正在制作一个网站,用户可以在其中将数据输入数据库,然后可以在另一个页面上搜索数据库。目前,创建新条目表单工作正常,用于显示表格的搜索页面也是如此,因为我还没有实现搜索。

控制器:

def search
 @project_search = Project.order(sort_column + " " + sort_direction)
end

  private

   def sort_column
    Project.column_names.include?(params[:sort]) ? params[:sort] : "project_name"
   end

   def sort_direction
    %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
   end


def create
@project = Project.new(params[:project])


@project.client = params[:new_client] unless params[:new_client].blank?
@project.exception_pm = params[:new_exception_pm] unless params[:new_exception_pm].blank?
@project.project_owner = params[:new_project_owner] unless params[:new_project_owner].blank?
@project.role = params[:new_role] unless params[:new_role].blank?
@project.industry = params[:new_industry] unless params[:new_industry].blank?
@project.business_div = params[:new_business_div] unless params[:new_business_div].blank?

respond_to do |format|
  if @project.save
    format.html { redirect_to @project, notice: 'Project was successfully created.' }
    format.json { render json: @project, status: :created, location: @project }
  else
    format.html { render action: "new" }
    format.json { render json: @project.errors, status: :unprocessable_entity }
  end
end
end

当我注释掉搜索方法时,我的输入表单就可以工作了,但是当它们都在那里时,我得到了这个错误。

NilClass:Class 的未定义方法“model_name”

从第 1 行的表单视图中提取的源代码:

<%= form_for(@project) do |f| %>

我认为这只是一个小问题,但我不知道如何解决它。我是 ruby​​ on rails 的新手,所以放轻松:)。

谢谢!

4

1 回答 1

2

不是 100% 肯定,但我认为这是因为它的private位置。在 Ruby 中,调用之后的所有内容都是私有的。Rails 可能会忽略您对 create 的定义并使用它自己的定义。private当您说“注释掉搜索方法”时,您是否有机会注释掉?

于 2012-07-19T12:28:24.123 回答