1

検索モデル用の検索フォームがあります。私の問題は、@search が存在する場合にのみフォームの値を表示したいということです。私はこのコードを書きました:

 <%= f.text_field :keyword, :value => @search.keyword if @search.present? %>

私の問題は、@search が存在しない場合、フォーム全体が表示されないことです! この場合、値が表示されないようにしたいだけです!

更新 UPDATE::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

私は小さなヘルパーを書きました:

def value(link)
 if @search.present?
  value: @search.link
 end
end

そして私の形で:

<%= f.text_field :keyword, value(keyword) %> 

しかし、なぜこのエラーが発生するのですか:

s_helper.rb:4: syntax error, unexpected ':', expecting keyword_end value: @search.link
4

4 に答える 4

2

@search がない場合でも、空の入力を表示したいということです。もしそうなら、これはあなたが望むことをするはずです:

  <%= f.text_field :keyword, :value => @search.try(:keyword) %>

try メソッドの詳細については、この記事を参照してください - http://everydayrails.com/2011/04/28/rails-try-method.html

于 2013-09-14T08:32:06.577 に答える