2011-08-11 35 views
0

對於在rails上進行ruby編程,我很新穎。如何在ruby控制器中編寫方法,然後寫入text_field的「:value =>」

我需要編寫一個方法來更改text_field中的默認值。 它應該是這個樣子:

count = 0 
def value() 
{ 
    count++ 
    value = "" 
    if count == 1 
    value = "Pre-Sales" 
    elsif count == 2 
    value = "Project" 
    etc... 
    end 
    return value 
} 
end 

這應該意味着每次運行的方法,則計數1。 IM上升這裏調用方法:

<p class="fields"> 
    <%= f.label :task_name, "Task Name" %> 
    <%= f.text_field :task_name, :value => value %> 
    <%= link_to_remove_fields "remove", f %> 
</p> 

內的部分公司太... 我知道我很想在這裏錯過,需要有人來幫忙。

+0

你能寫一個用戶案例嗎?我在理解你想要達到的目標方面遇到問題。 – socjopata

+0

基本上每次創建文本字段時,它對於「:value =>」具有不同的值,因此5個text_fields將具有不同的默認值 – SD1990

+0

如果您要繼續擴展「count」的檢查, d去一個case語句並刪除所有if elsif。你可以放下大括號,而且你也不需要顯式的return語句。 –

回答

1

我感覺你在做一些瘋狂的事情/「不是Rails的方式」。

好的,所以你進入一個頁面,你的表單被渲染。我想你正在使用form_for幫手和一個:task_name是一個字段在數據庫相關的一些模型的權利? 有什麼理由:

<%= f.text_field :task_name, :value => translated_1 %> 
<%= f.text_field :task_name, :value => translated_2 %> 
<%= f.text_field :task_name, :value => translated_3 %> 
<%= f.text_field :task_name, :value => translated_4 %> 
<%= f.text_field :task_name, :value => translated_5 %> 

我不明白,但讓我們說你有你的段落在部分。你可以這樣做:

5.times do |i| 
    render :partial => "this_is_crazy", :locals => {:i => i, :f => f} 
end 

,然後這裏面的部分你會你:

<p class="fields"> 
    <%= f.label :task_name, "Task Name" %> 
    <%= f.text_field :task_name, :value => get_default_value(i) %> 
    <%= link_to_remove_fields "remove", f %> 
</p> 

那麼就需要定義你的get_default_value(i)在「助手/ crazy_helper.rb」使用的情況下,或一堆IFS的。 ..(這是一種可能性,不是一個建議或我會這樣做的方式)

但是,我有一種感覺,你做錯了什麼......也許我會發布更多關於你的問題的東西,我將能夠讓你回到正確的軌道:)

+0

葉這正是我想要做的..但買它的外觀它是瘋狂的談話......但謝謝你的建議 – SD1990

+0

沒問題。如果我能理解你的條件值背後的基本概念,那麼也許我可以想出更有用的東西:) – socjopata