Проблемы при создании поля формы URL с использованием вида действия и form_for

Попытка создать поле формы, в котором пользователь может отправить URL-адрес по адресу: http://apidock.com/rails/v3.2.13/ActionView/Helpers/FormHelper/url_field

Я получаю сообщение об ошибке: ActionView::Template::Error (неопределенный метод "homepage" для #

вот модель:

class Idea < ActiveRecord::Base
  has_many :comments
  mount_uploader :picture, PictureUploader
  attr_accessible :description, :name, :picture, :homepage
end

представление в form.html.erb

<%= form_for(@idea) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
<div class="field">
    <%= f.label :link %><br />
    <%= url_field("homepage") %><br />
  </div>
  <div class="actions">
    <%= f.submit %>

представление в show.html.erb

<p><b>Name: </b><%= @idea.name %></p>
<p><b>Link:</b><%= @idea.homepage %></p>

ideas_controller

def create
    @idea = Idea.new(params[:idea])

    respond_to do |format|
      if @idea.save
        format.html { redirect_to @idea, notice: 'Idea was successfully created.' }
        format.json { render json: @idea, status: :created, location: @idea }
      else
        format.html { render action: "new" }
        format.json { render json: @idea.errors, status: :unprocessable_entity }
      end
    end
  end

def show
    @idea = Idea.find(params[:id])
    @comment = @idea.comments.build

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @idea }
    end
  end

2 ответа

Решение

ИМХО использование url_field в конструкторе форм устарело и подвержено ошибкам. В конце концов мне удалось найти: rails auto link от tenderlove: https://github.com/tenderlove/rails_autolink сочетании с tinymce-rails от spohlenz: https://github.com/spohlenz/tinymce-rails. С помощью этих двух драгоценных камней вы можете создать полнофункциональное поле формы и гораздо более эффективно отображать результаты. Надеюсь, это поможет кому-то еще.

По сути, когда вы передаете и используете переменную для блока в form_for, она уже устанавливает связь полей формы.

то есть:

url_field('user', 'homepage')

эквивалентно

f.url_field('homepage')

Проверьте поле url_ и документацию form_for

Другие вопросы по тегам