2014-03-02 32 views
1

我有一個表格,其中包含<select>元素。Rails - 如何將<select>更改爲只使用ID調用時的隱藏字段?

enter image description here

[應用商店書籤鏈接和團體爲他們]

在做一個 '新',一切都正常工作。新表單有效,<select>下拉列表中包含組的列表並具有其ID。

現在的問題是,我想打電話從不同的地方,將已經知道了組「新鏈接」。在這種情況下,我不想選擇組,我只想使用傳遞給它的組ID。

表單本身:

= f.select :group_id, @groups 

我的路線包括:

resources :groups do 
    resources :links # Added so that I can do group/:id/link/new ... 
    collection do 
     post 'order_links' 
    end 
    end 
    match 'search' => 'links#index' 
    match 'advanced_search' => 'links#advanced_search' 
    resources :links do 
    collection do 
     get 'groups' 
    end 
    end 

是,顯示的是這個 「新鏈接」 的形式,該控制器具有:

def new 
    @link = Link.new 
    @groups = Group.all.collect { |g| [g.group_name, g.id] } 
    @group_name = 
     if params[:group_id] 
     'for the '+Group.find(params[:group_id]).group_name + ' group.' 
     else 
     '' 
     end 
    respond_to do |format| 
     format.html 
    end 
    end 

我試着改變看法有這個:

-if params[:group_id] 
    = f.hidden_field :group_id, :value => params[:group_id] 
-else 
= f.select :group_id, @groups 

但它沒有工作,我仍然得到了<select>元素,默認爲第一個<option>

我確實有過這樣的工作,但過去已經破產,所以希望我相當接近。

回答

1

HAML模板中的縮進是錯誤的。它應該是:(如果這是現在的樣子就出來了,當你進入的問題,我會刪除這個答案)

- if params[:group_id] 
    = f.hidden_field :group_id, :value => params[:group_id] 
- else 
    = f.select :group_id, @groups 

+0

這就是它!接得好!很快會接受。 –

+0

沒問題,很樂意幫忙。 –

相關問題