簡體   English   中英

如何在 ruby controller 中編寫方法,然后寫入 text_field 的“:value =>”

[英]How to write a method in a ruby controller and then to the “:value =>” of a text_field

我對在軌道上使用 ruby 進行編程非常陌生。

我需要在 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。我在這里調用該方法:

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

它在里面也是一個部分......我知道我在這里失蹤了很多,需要有人幫忙。

我有一種感覺,您正在做一些瘋狂的事情/“不是 Rails 方式”。

好的,所以您輸入一個頁面並呈現您的表單。 我猜您正在使用 form_for 助手,而 a:task_name 是 db 中與某些 model 相關的字段,對嗎? 背后的原因是什么:

 <%= 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>

然后你會使用一個案例或一堆ifs在“helpers/crazy_helper.rb”中定義你的get_default_value(i) ......(這是一種可能性,而不是建議或我會這樣做的方式)

但是,我再次感覺到你做錯了什么......也許我發布了更多關於你的問題的內容,我會讓你回到正確的軌道上:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM