Ruby on Rails 4.1爲表單創建並使用臨時屬性
表單有一個選項來選擇表列名稱。我想輸入文本到表格選擇的表格列中。爲了做到這一點,我試圖創建表單可以用來存儲值並在create方法中檢查的臨時屬性。然後將文本分配到正確的列,然後保存。
控制器:
def new
@word = Word.new
@language = Word.new(params[:language])
@translation = Word.new(params[:translation])
@language_options = Word.column_names
end
def create
@word = Word.new(word_params)
if @language == "arabic"
@word.arabic == @translation
end
respond_to do |format|
if @word.save
format.html { redirect_to @word, notice: 'Word was successfully created.' }
format.json { render :show, status: :created, location: @word }
else
format.html { render :new }
format.json { render json: @word.errors, status: :unprocessable_entity }
end
end
end
形式:
<%= simple_form_for(@word) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :name, placeholder: 'English String' %>
<%= f.input :language, collection: @language_options %>
<%= f.input :translation, placeholder: 'Translated String' %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
這是錯誤我得到:
undefined method `language' for #<Word:0x007f6116b1bcb8>
這是因爲沒有對形式語言屬性使用。所以我試圖在控制器new()中做一個臨時的。
有沒有辦法做到這一點或我必須:語言和:翻譯在數據庫表中引用的形式?
使用簡單輸入助手的值。像'text_field'或'select'。 – zishe
另外,在方法'create'' @ language'和'@ translation'中沒有定義。 – zishe