我想知道我哪里错了。所以我有一个表单模板来编辑和更新模型(多个)
<%= 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"} %>
编辑
<%= button_to 'Change', :controller=>:cargo,:action=>:edit_auto,:id=>car.CarI
d%&gt;
但是当我按下Save按钮时,我的意思是create_auto和save_auto没有运行
答案 0 :(得分:1)
老实说,您需要退后一步,学习一些Rails约定,例如RESTful控制器的方法名称。
Rails,不仅仅是许多框架,如果你打击它的惯例,它会让你很难受。这通常是一件好事,因为它可以通过不重新发明轮子来提高生产率,但是你需要学习它们。
我推荐这些资源(没有双关语!):
答案 1 :(得分:0)
您使用的是非传统方法名称。如果您想这样做,则必须在表单中指定它们。否则我建议重命名方法以匹配rails约定。
create, update, …