2

我有一个控制器

 emppedes

当我想在我看到的 url 中调用它时它很好

localhost:3000/emppedes

并出现与之相关的全部内容。

但是我可以将此控制器与 rails 中的其他名称相匹配,以便当我点击它时,我可以像

localhost:3000/employees

在不改变内部但外部的控制器的情况下,您可以看到这一点。我的意思是我可以在某个地方编码吗

 `emppedes will display as employees in URL.`

可能吗。可能是我的问题很愚蠢,但我想知道这是否可能。在编辑中我有两个发送两个不同的 id,在控制器中也为了更新我必须发送两个 id。对于编辑我的代码就像

<%= link_to 'Edit', { :action => "edit",:id => @emppede.id,:ad => @id},:class=>"btn btn-success" %> |

因为我在控制器中有两个句柄两个 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 }

我怎样才能在rails路径格式中发送两个参数:id和:ad?由于我的控制器是这样的

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
4

4 回答 4

7

是的,您可以指定用于任何给定资源的控制器:

resources :employees, :controller => "emppedes"

或者,如果您更喜欢 Ruby 1.9 语法:

resources :employees, controller: "emppedes"

有关更多详细信息,请参阅Rails 指南:路由

于 2012-12-06T05:05:44.830 回答
3

您要做的是传入 :path 选项

资源 :employees, :path => "emppedes"

这会将您的所有路线引用替换为 /employees 到 /emppedes

请参阅: http: //guides.rubyonrails.org/routing.html,第 4.7 节翻译路径

于 2012-12-06T05:11:44.583 回答
1

您可以在 routes.rb 中使用以下内容进行查询

match '/employees/:id/:ad(.:format)' => 'emppedes#index', :via => :get, :as => :employees
resources :emppedes, :as => 'employees'
于 2012-12-06T10:01:38.667 回答
0

尝试在初始化文件中使用变形

  ActiveSupport::Inflector.inflections do |inflect|
     inflect.irregular 'employees', 'emppedes'
  end
于 2012-12-06T05:27:00.270 回答