2013-07-16 227 views
0

我有一個應用程序在軌道上的紅寶石視圖,其中有一些參數顯示在屏幕上。如何將參數從視圖傳遞到控制器

<%= link_to l(:label_statistics), 
      {:action => 'stats', :id => @project, :repository_id => @repository.identifier_param}, 
      :class => 'icon icon-stats' if @repository.supports_all_revisions? %> 

我想趕上變量@repository.name和我在我的控制器功能使用它。

我該怎麼做?

+2

您已經傳遞存儲庫的ID。爲什麼不直接在你的控制器中查看它? – jdl

+0

,因爲控制器是其他沒有關於存儲庫的任何信息。當我嘗試直接訪問時,我收到零。 – kamusett

回答

0

在您的統計信息操作中,假設您有一個存儲庫模型,並且包含名稱的記錄存在於您的數據庫中。

@repository = Repository.find(params[:repository_id]) 
@repository.name 

如果沒有,你可以連同一切通過它,

<%= link_to l(:label_statistics), 
    {:action => 'stats', 
    :id => @project, 
    :repository_id => @repository.identifier_param, 
    :repository_name => @repository.name}, 
    :class => 'icon icon-stats' if @repository.supports_all_revisions? %> 

然後在控制器中,通過params[:repository_name]

+0

如果我在link_to_l中創建了一個新符號(例如:asdsad => @ repository.name),那麼當我執行params [:asdsad]命令時,是否會工作? – kamusett

+0

Rails無法識別的任何參數都會作爲查詢字符串傳遞。所以你會得到'yourpath /?asdsad = repositoryname'。你可以通過params [:asdsad]訪問它,是的。 –

0

訪問它只是使其通過參數。 Doc for li_to

link_to can also produce links with anchors or query strings: 

link_to "Comment wall", profile_path(@profile, :anchor => "wall") # => <a href="/profiles/1#wall">Comment wall</a> 

link_to "Ruby on Rails search", :controller => "searches", :query => "ruby on rails" # => <a href="/searches?query=ruby+on+rails">Ruby on Rails search</a> 

link_to "Nonsense search", searches_path(:foo => "bar", :baz => "quux") # => <a href="/searches?foo=bar&amp;baz=quux">Nonsense search</a> 
相關問題