2013-09-24 41 views
1

我正在构建一个没有模型,没有数据库的UI应用程序。它使用Web服务调用其所有业务逻辑。我有一个令人难以置信的困难时间完成路由。我仍然有像workstations这样的实体。我在我的routesresource :workstations宣布这给了我这些路线:我可以使用没有数据库的资源路由吗(没有ID)

 workstations POST /workstations(.:format)  workstations#create 
new_workstations GET /workstations/new(.:format) workstations#new 
edit_workstations GET /workstations/edit(.:format) workstations#edit 
        GET /workstations(.:format)  workstations#show 
        PUT /workstations(.:format)  workstations#update 
        DELETE /workstations(.:format)  workstations#destroy 

但是当我尝试链接到一个更新动作像= link_to "Update", workstations_path, :method => :put我得到No route matches {:controller=>"workstations", :method=>"put"}。是不是更新行为列出的路线?

我想知道我是否因为没有ids而无法使用传统的机智路线。或者,也许我只是做错了。

查看代码(Haml的):

%h2 
    %small#application-name-label Technical Support Interface 
.col-md-3 
    %h3 Workstations 
    %button.btn.btn-success.create-button Create Workstation 
    - if @workstations.blank? 
    .no-items-available There are no workstations to display 
    -else 
    = form_tag(controller: "workstations", action: "delete_history_and_queue", method: "post") do 
     %table#workstation-table.table.table-striped.table-hover.table-bordered 
     %thead 
      %tr 
      %th#table-header Name 
      %th#table-header Delete History 
      %th#table-header Delete Queue 
      %th#table-header Update 
      %th#table-header Delete 
     %tbody 
      - @workstations.each do |workstation| 
      %tr 
       %td 
       = workstation[:name] 
       %td 
       = check_box_tag 'delete history', form_class: "checkbox" 
       %td 
       = check_box_tag 'delete queue', form_class: "checkbox" 
       %td 
       = link_to "Update", workstations_path, :action => :update 
       %td 
       = link_to "Delete", workstations_path, :action => :destroy 
    = submit_tag 
.col-md-3 
    %h3 Data Sources 
    %button.btn.btn-success.create-button Create Data Source 
    - if @data_sources.blank? 
    .no-items-available There are no sources to display 
    -else 
    %table.table.table-striped.table-hover.table-bordered 
     %tr 
     %th#table-header Type 
     %th#table-header Name 
     - @data_sources.each do |data_source| 
     %tr 
      %td 
      = data_source[:type] 
      %td 
      = data_source[:name] 

HTML

<body> 
    <div class='whole-page'> 
     <div class='container'> 
     <h1 class='hero-unit' id='application-title'> 
      <div class='row-fluid'> 
      <div class='span1' id='replication-server'> 
       <img alt="Cog_logo" src="/assets/cog_logo.png" /> 
       <img alt="Crs" src="/assets/crs.png" /> 
       Replication Server 
      </div> 
      </div> 
     </h1> 
     </div> 
    </div> 
    <h2> 
     <small id='application-name-label'>Technical Support Interface</small> 
    </h2> 
    <div class='col-md-3'> 
     <h3>Workstations</h3> 
     <button class='btn btn-success create-button'>Create Workstation</button> 
     <form accept-charset="UTF-8" action="/?method=post" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="NQghiooSVtSngRU7K170uxhqJ2N6i9XQ6sP5W+UeKrY=" /></div> 
     <table class='table table-striped table-hover table-bordered' id='workstation-table'> 
      <thead> 
      <tr> 
       <th id='table-header'>Name</th> 
       <th id='table-header'>Delete History</th> 
       <th id='table-header'>Delete Queue</th> 
       <th id='table-header'>Update</th> 
       <th id='table-header'>Delete</th> 
      </tr> 
      </thead> 
      <tbody> 
      <tr> 
       <td> 
       consequatur 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       quia 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       quod 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       reprehenderit 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       laborum 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       quidem 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       laboriosam 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      <tr> 
       <td> 
       non 
       </td> 
       <td> 
       <input id="delete_history" name="delete history" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=&gt;&quot;checkbox&quot;}" /> 
       </td> 
       <td> 
       <a href="/workstations" action="update">Update</a> 
       </td> 
       <td> 
       <a href="/workstations" action="destroy">Delete</a> 
       </td> 
      </tr> 
      </tbody> 
     </table> 
     </form> 
     <input name="commit" type="submit" value="Save changes" /> 
    </div> 
    <div class='col-md-3'> 
     <h3>Data Sources</h3> 
     <button class='btn btn-success create-button'>Create Data Source</button> 
     <table class='table table-striped table-hover table-bordered'> 
     <tr> 
      <th id='table-header'>Type</th> 
      <th id='table-header'>Name</th> 
     </tr> 
     <tr> 
      <td> 
      CIDNE 
      </td> 
      <td> 
      http://block.com/keaton_baumbach 
      </td> 
     </tr> 
     <tr> 
      <td> 
      DCGS 
      </td> 
      <td> 
      http://wolff.info/jace_rice 
      </td> 
     </tr> 
     </table> 
    </div> 
    </body> 
</html> 

回答

1

你当然可以使用REST风格的路线W/O模型对象或ID。你所拥有的一切似乎都很好,我甚至在本地尝试过,工作过。

如果您使用rails s进行测试,您可能需要重新启动,过去我已经有了重新启动的路由问题。

+0

好吧,现在我得到了''行动'显示'找不到WorkstationsController'这是进步,我猜。我不需要'show'动作,所以我不确定这是从哪里来的。只是为了理智,你没有*有*实施一个行动只是因为路线定义或你?我的猜测是它误解了'workstations_path',但这看起来不正确。 –

+0

如果您尝试在'/ workstations'上“GET”,并且没有控制器方法来处理它,那么您会得到该错误。如果你不想要它,你可以从生成的路线中排除它,如下所示:'resource:workstations,除了:[:show]' –

+0

我把除了现在我得到'没有路线匹配[GET]“/工作站“' –

相关问题