试图传递参数

时间:2014-10-05 15:53:00

标签: ruby-on-rails ruby-on-rails-4

我正在尝试将URL params传递到我的Rails应用程序中(例如:/ entries / new?name = asdf

控制器:

def new @entry = Entry.new(params[:name]) end def create @entry = Entry.new(params[:name]) if @entry.save redirect_to @entry, notice: 'Entry was successfully created.' else render :new end end

private
# Use callbacks to share common setup or constraints between actions.
def set_entry
  @entry = Entry.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def entry_params
  params.require(:entry).permit(:name)
end end

表单字段:

<%= hidden_field_tag :name, params[:name] %>

我收到错误“在分配属性时,必须将哈希作为参数传递。”

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

params是一个哈希。 params[:name]将返回一个字符串(上例中的'asdf')。在实例化Entry时,您只应在传递哈希值时传递字符串。假设name是Entry模型的属性,则需要执行此操作

@entry = Entry.new(name: params[:name])

答案 1 :(得分:0)

使用rails generate scaffold Entry并查看生成的代码。你试图做的事情没有多大意义