【问题标题】:rails update and create using form templaterails 使用表单模板更新和创建
【发布时间】:2011-01-17 16:05:31
【问题描述】:

我想知道我哪里错了。所以我有一个表单模板来编辑和更新模型(不止一个)

<%= form_for :Car,@car,:url=>{:controller=>:cargo} do |form| %>
....
<%= form.submit "Save", :class => "submit" ,:class =>"Button_style"%>
<% end %>

在控制器(货物)中我有一些方法

def index
    @cars=Car.find_all_by_UserId(session[:user_id])
    if @cars.nil?
    end
  end

  def create_auto
      @car = Car.new(params[:Car])
      @car.UserId=session[:user_id];
      if @car.save
        redirect_to :action=>:index
      else
        render :action => "new_auto"
      end
  end

  def new_auto
    @car = Car.new
    @car.CarProperty.build
  end

  def edit_auto
    @car = Car.find(params[:id])
    if @car.nil?
      flash[:notice] = "Empty request"
    end
  end

  def update_auto
    @car = Car.find(params[:id])
      if @car.update_attributes(params[:Car])
      else
        render :action => "edit_auto"
      end
  end

要添加新车,我使用按钮

<%= button_to "Add car",{:action=>:new_auto},{:class =>"Button_style",:method => "get"} %>

编辑 &lt;%= button_to 'Change', :controller=&gt;:cargo,:action=&gt;:edit_auto,:id=&gt;car.CarId %> 但是当我按下保存按钮时,我的意思是 create_auto 和 save_auto 没有运行

【问题讨论】:

    标签: ruby-on-rails forms edit


    【解决方案1】:

    老实说,您需要退后一步,学习一些 Rails 约定,例如 RESTful 控制器的方法名称。

    Rails 比许多框架更重要,如果你违背它的约定,它会咬你一口。这通常是一件好事,因为它可以通过不一直重复造轮子来提高生产力,但您需要学习它们。

    我推荐这些资源(不是双关语!):

    【讨论】:

      【解决方案2】:

      您正在使用非常规的方法名称。如果你想这样做,你必须在表格中指定它们。否则,我建议重命名方法以匹配 Rails 约定。

      create, update, …
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-20
        • 1970-01-01
        • 2012-12-20
        • 2014-10-24
        相关资源
        最近更新 更多