reg*_*rem 1 routing ruby-on-rails
我有一个控制器
emppedes
Run Code Online (Sandbox Code Playgroud)
当我想在url中调用这个时,它很好
localhost:3000/emppedes
Run Code Online (Sandbox Code Playgroud)
并且显示与其相关的整个内容.
但是我可以将此控制器与其他人在rails中的名称相匹配,这样当我点击它时我就可以获得URL了
localhost:3000/employees
Run Code Online (Sandbox Code Playgroud)
没有更改内部控制器但在url外部你可以看到.我的意思是我能在某处编码
`emppedes will display as employees in URL.`
Run Code Online (Sandbox Code Playgroud)
可能吗.可能是我的问题很愚蠢,但我想知道是否可能.在编辑我有两个发送两个不同的ID和控制器也为更新我必须发送两个ID.对于编辑,我的代码就像
<%= link_to 'Edit', { :action => "edit",:id => @emppede.id,:ad => @id},:class=>"btn btn-success" %> |
Run Code Online (Sandbox Code Playgroud)
因为我有两个句柄控制器中的两个ID也用于更新
@id= @emppede.ad
if @emppede.save
format.html { redirect_to :action => :index, :id => @emppede.ad }
format.json { render json: @emppede, status: :created, location: @emppede }
Run Code Online (Sandbox Code Playgroud)
我如何发送两个参数:id和:ad都在rails path formate中?因为我的控制器是这样的
def index
@id = params[:id]
@data = Emppede.where(:ad => @id)
if @data.count > 0
@data.each do |data|
@ids= data.id
end
redirect_to :action => :show, :id => @ids, :ad => @id
else
redirect_to :action => :new, :id => @id
end
end
Run Code Online (Sandbox Code Playgroud)
小智 6
是的,您只需指定要用于任何给定资源的控制器:
resources :employees, :controller => "emppedes"
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢Ruby 1.9语法:
resources :employees, controller: "emppedes"
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅Rails指南:路由.