尝试创建一个表单字段,用户可以在其中提交网址: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
答案 0 :(得分:2)
基本上,当你在form_for中对块进行屈服和使用变量时,它已经设置了表单字段的关联。
即:
url_field('user', 'homepage')
相当于
f.url_field('homepage')
答案 1 :(得分:0)
在表单构建器中使用url_field的IMHO是过时的并且容易出错。最终我能够找到:来自tenderlove的rails自动链接:https://github.com/tenderlove/rails_autolink加上来自spohlenz的https://github.com/spohlenz/tinymce-rails的tinymce-rails。通过这两个宝石,您可以构建功能齐全的表单字段并更有效地显示输出。希望这有助于其他人。